如何映射使用ko.viewmodel计算的字段

金太郎

不知道我怎么能映射使用ko.viewmodel计算的字段,任何人都知道它是如何完成的?非常感谢任何帮助。

var model = {
    firstName: "Le gatêau",
    lastName: "Chien",
    items: ['J-Rock', 'J-Pop'],
    itemselected: 'J-Pop',
    all: function(){ return firstName + ', ' + lastName + ', ' + itemselected },
};

编辑:

很遗憾,我不清楚我正在编辑问题,我正在使用ko.viewmodel插件将对象转换为ko模型,但未将其转换为ko.compute对象,当将地图识别为一个时,该对象已定义为ko计算:

var updatedModel = {
    firstName: "El pastel",
    lastName: "Perro",
    items: ['Pop', 'Rock'],
    itemselected: 'Rock',
    all: function(){ return firstName + ', ' + lastName + ', ' + itemselected },
};
var viewModel = ko.viewmodel.fromModel(model);
ko.applyBindings(viewModel);

我的代码补全在这里DEMO

编辑2:

感谢您的答复,我在最终代码中添加了所需的功能:

JS:

var options = {
    extend: {
        "{root}": function (m) {
            m.all = ko.computed(function () {
                var item = ko.utils.arrayFirst(m.music(), function (g) {
                    return g.id() == m.selected();
                });
                if (item == null) return '';
                return m.like() + ' ' + item.name();
            });
        }
    }
};
var m1 = '{"like":"Pastel","music":[{"id":1,"name":"J-Pop"},{"id":2,"name":"J-Rock"},{"id":3,"name":"Rock"}],"selected":"3"}';
var m2 = '{"like":"Gatêau","music":[{"id":1,"name":"J-Pop"},{"id":2,"name":"J-Rock"},{"id":3,"name":"Rock"}],"selected":"2"}';
var viewmodel = ko.viewmodel.fromModel(JSON.parse(m1), options);
ko.applyBindings(viewmodel);
setTimeout(function () {
    console.clear();
    ko.viewmodel.updateFromModel(viewmodel, JSON.parse(m2));
}, 2300)

HTML:

Comida:
<input data-bind="value: like" />
<br/>Musica:
<select data-bind="options: music, optionsText: 'name', optionsValue: 'id', value: selected"></select>
<br/>

<h1 data-bind="text: all"></h1>

最后的演示在这里最终演示

阿迪亚·辛格(Aditya Singh)

如果我的问题正确,那么您需要ko.computed模型上属性。插件ko.viewModel提供options了控制您的viewModel的功能。使用该extend选项来创建计算属性,all而不是直接添加到对象。我为此创建了一个小提琴:http : //jsfiddle.net/sublimejs/L6Wm3/8/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 MapStruct 仅映射指定字段?

来自分类Dev

使用vuex-map-fields映射计算字段

来自分类Dev

在计算字段中使用字段别名

来自分类Dev

如何使用AWK计算交错字段?

来自分类Dev

如何使用MongoDB计算每日平均字段?

来自分类Dev

Elasticsearch:如何搜索计算字段

来自分类Dev

如何按计算字段排序?

来自分类Dev

如何计算字段中的数量

来自分类Dev

实体框架创建计算(未映射)字段?

来自分类Dev

使用JavaScript计算对应的字段

来自分类Dev

使用AngularJS对计算字段求和

来自分类Dev

Tableau 计算字段使用 FIXED

来自分类Dev

如何使用其他名称从模型映射到字段

来自分类Dev

使用 spring-data-elasticsearch,如何更新字段映射?

来自分类Dev

如何计算表中的字段数?

来自分类Dev

如何计算Mongodb聚合中的字段

来自分类Dev

如何计算MongoDB聚合中的字段?

来自分类Dev

如何计算字段加载中的字符数?

来自分类Dev

mongodb如何使年龄字段总和不计算

来自分类Dev

AngularJS-如何计算输入字段值

来自分类Dev

如何计算Mongodb聚合中的字段

来自分类Dev

如何在Solr中计算多值字段

来自分类Dev

如何找到空白字段并计算缺失字段的值

来自分类Dev

如何计算表单字段值以更新隐藏字段值?

来自分类Dev

如何将计算字段与货币字段相乘?

来自分类Dev

使用VBA添加计算字段

来自分类Dev

使用Entity Framework 6创建计算字段

来自分类Dev

使用查询中的计算字段更新表

来自分类Dev

使用php javascript动态计算输入字段