`
sunxboy
  • 浏览: 2878131 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

select2 集成knockoutjs

 
阅读更多

1. execute scripts when page loading:

ko.bindingHandlers.select2 = {
    init: function(element, valueAccessor, allBindingsAccessor) {
        var options = ko.toJS(valueAccessor()) || {};
        var allBindings = allBindingsAccessor();
        var lookupKey = allBindings.lookupKey;
        setTimeout(function() {
            $(element).select2(options);
        }, 0);

        if (lookupKey) {
            var value = ko.utils.unwrapObservable(allBindings.value);
            $(element).select2('data', ko.utils.arrayFirst(options.data.results, function(item) {
                return item[lookupKey] === value;
            }));
        }

        ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
            $(element).select2('destroy');
        });
    },
    update: function(element) {
        $(element).trigger('change');
    }
};

 

 

2. page html tag, Ex:

<select id="form_input1_orientation"></select>

 

3. data binding :

$("#form_input1_orientation").attr("data-bind",
                "options: orientationCategories, optionsValue: 'Id', optionsText: 'Name',  selectedOptions: install().orientation_1, select2: {}");

 

 

4. view modal:

var orientationCategoriesData = [
            {Id: "north", Name: "正北"},
            {Id: "northeast", Name: "东北"},
            {Id: "northwest", Name: "西北"},
            {Id: "east", Name: "正东"},
            {Id: "southeast", Name: "东南"},
            {Id: "south", Name: "正南"},
            {Id: "southwest", Name: "西南"},
            {Id: "west", Name: "正西"}
        ]

self.orientationCategories = ko.observableArray(orientationCategoriesData);

self.orientation_1 = ko.observable(["east"]);

 

enjoy.

分享到:
评论

相关推荐

    KnockoutJS

    2. ** observables**:在KnockoutJS中,`observables`是用于创建可观察对象的函数,它们可以监听自身的变更。当一个observable的值改变时,所有依赖于它的视图都会自动更新。 3. **view-models**:ViewModel是...

    KnockoutJs 帮助文档 中文手册

    **KnockoutJS** 是一个轻量级的JavaScript库,专为构建动态用户界面而设计。它使用MVVM(Model-View-ViewModel)模式,帮助开发者实现数据绑定和依赖跟踪,使得视图与数据模型之间的交互变得更加简单。中文手册提供...

    [KnockoutJS] KnockoutJS 入门教程 (英文版)

    [Packt Publishing] KnockoutJS 入门教程 (英文版) [Packt Publishing] KnockoutJS Starter (E-Book) ☆ 出版信息:☆ [作者信息] Eric M. Barnard [出版机构] Packt Publishing [出版日期] 2012年11月23日 ...

    KnockoutJS Essentials(PACKT,2015)

    KnockoutJS is a Model View ViewModel (MVVM) framework that allows you to simplify the design of complex user. Knockout makes data manipulation simple and leads to maintainable web applications. ...

    Asp.Net MVC 4 KnockoutJS 框架实例

    Asp.Net MVC 4 和 KnockoutJS 是两个在Web开发领域广泛应用的技术,它们结合使用能够构建出高效、动态且用户友好的Web应用。Asp.Net MVC 4 是Microsoft推出的一个强大的MVC(Model-View-Controller)框架,用于构建...

    knockoutjs2.1.0

    knockoutjs,前台MVVM模式实现框架。knockoutjs能使前台数据源与html页面分离开来,让程序员专注于数据的变化。详情请参照knockoutjs.com。本文件于2012-7-31下载于knockout官方网站,版本号2.1.0

    KnockoutJS中文文档新

    ### 2. 数据绑定 数据绑定是KnockoutJS的核心特性。它允许开发者用声明式的方式将JavaScript对象的属性与HTML元素关联起来。常见的数据绑定类型包括文本绑定、HTML绑定、事件绑定、条件绑定、循环绑定等。例如,`...

    js knockoutjs 全国省市区三级联动

    JavaScript 和 KnockoutJS 是两种广泛应用于前端开发的技术。在网页应用中,经常需要实现省市区三级联动的效果,即用户选择一个省份后,市和区的数据会根据所选省份动态加载和更新。这种功能提升了用户体验,使得...

    KnockoutJS Web Development(PACKT,2015)

    Starting with the installation and configuration of KnockoutJS, this book will describe the ins and outs of working with forms using arrays, nesting, and grids. You will learn about event binding and...

    KnockoutJS 官方文档汉化版

    KnockoutJs官方文档汉化完整版+Knockout精品文章,绝对超值

    WebApi+Bootstrap+KnockoutJs打造单页面程序

    2. Bootstrap是一套用于HTML、CSS和JavaScript的框架,旨在快速开发响应式网站。它包含一系列的预定义样式和组件,可以轻松定制,快速响应不同设备的屏幕尺寸。 3. KnockoutJs是一个让开发者可以使用模型-视图-视图...

    KnockoutJs_帮助文档_中文手册 chm

    2. **数据绑定** 数据绑定是KnockoutJS的主要功能,它允许开发者声明性地将UI元素与JavaScript对象的属性关联起来。KnockoutJS支持多种类型的绑定,如文本绑定、HTML绑定、事件绑定、条件绑定、循环绑定等,使得UI...

    KnockoutJS_3.xx版本

    Knockout(简称KO)是一个JavaScript库,可以帮助您用干净的底层数据模型创建丰富的反应迅速显示和编辑用户界面。任何时候你有UI的部分是动态更新(例如,根据用户的行为或者外部数据源的变化而变化),用KO可以帮助...

    KnockoutJS学习文档中文版

    网上这方面的资料很少,找了大半天才找到这么一个.希望对大家有用

    yii2-knockoutjs:Yii2 的淘汰赛资产

    Yii2 的淘汰赛资产提供易于集成的资产包到您的Yii2应用。安装安装此扩展的首选方法是通过 。 无论运行composer require --prefer-dist " madand/yii2-knockoutjs:* " 或添加 "madand/yii2-knockoutjs": "*"到...

    KnockoutJS的6寸PDF文档

    2. **现场示例探索**:一旦掌握了基础知识,可以通过查看实时示例进一步了解KnockoutJS的应用场景和可能性。 3. **实际项目实践**:最终,通过在自己的项目中应用KnockoutJS来加深理解并提高技能水平。 #### 与...

    MVC Knockoutjs Bootstrap简单框架

    Knockout 使用 JavaScript ViewModel 实现了 MVVM 模式. 在 MVC 中还有一个很棒的因素是从 Javascript 模型序列化为 Json 和从 Json 反序列为模型都很简单,在 MVC4 中已经包含了这个脚本库, 这使得在我们开发复杂的...

Global site tag (gtag.js) - Google Analytics