knockout.js – Knockout没有映射数组中对象的属性

似乎敲除没有正确映射数组中对象的属性.

从chrome控制台中查看此示例:

> var viewmodel = ko.mapping.fromJS({list:[]});
undefined

> viewmodel.list().unshift({ name : ko.observable("Foo") });
1

> viewmodel.list()[0].name();
"Foo"

> var js = ko.mapping.toJS(viewmodel);
undefined

> js.list[0].name;
undefined

所以正在创建javascript对象,但是’name’属性没有被映射.

任何想法都非常欢迎!

解决方法

http://knockoutjs.com/documentation/plugins-mapping.html开始,关于toJS()函数

This will create an unmapped object containing only the properties of the mapped object that were part of your original JS object.

由于“名称”不是您映射的原始对象的一部分,因此它不会被取消映射.您需要告诉映射插件包含此特定属性

var js = ko.mapping.toJS(viewmodel,{ include: ['name'] });

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...