KnockoutJs 1.3测试版._destroy:false在UI上的结果与_destroy:true相同
KnockoutJs 1.3 beta. _destroy:false has same result on ui as _destroy:true
使用asp.net mvc,我正在传递一个视图模型并获得击倒映射视图模型并绑定到此。
这对我来说都很好,我想做的是跟踪删除。
我认为我可以通过添加_destroy属性来做到这一点,但将其设置为false。
我希望ui会忽略这个,直到destroy将其设置为true。
但事实似乎并非如此,仅仅这一特性的存在就会导致被视为破坏。
这是一个错误还是我处理这个错误?
很多谢谢,寇汗
var model = [{"Id":1,"Name":"Bikes","Parent":null,"_destroy":false},
{"Id":2,"Name":"Components","Parent":null,"_destroy":false},
{"Id":3,"Name":"Clothing","Parent":null,"_destroy":false},
{"Id":4,"Name":"Accessories","Parent":null,"_destroy":false},
{"Id":5,"Name":"Mountain Bikes","Parent":1,"_destroy":false},
{"Id":6,"Name":"Road Bikes","Parent":1,"_destroy":false},
{"Id":7,"Name":"Touring Bikes","Parent":1,"_destroy":false},
{"Id":8,"Name":"Handlebars","Parent":2,"_destroy":false}] ;
以上元素都不显示。甚至"_destroy": null也有同样的效果。
问题的工作示例…
http://jsfiddle.net/jy53e/6/
更新:似乎是映射扩展的一个问题。
正在发生的事情是,你通过映射插件发送_destroy
,它作为一个可观察对象出来。Knockout不期望它是一个可观察对象(一个函数),所以当它执行像if (_destroy)
这样的检查时,结果将为真,因为_destroy
是一个函数,并且它没有打开来查看它的值。
你可以这样做:http://jsfiddle.net/rniemeyer/jy53e/7/来防止_destroy
被做成一个可观察对象
所以,使用映射选项:
var mappingOptions = {
create: function(options) {
return ko.mapping.fromJS(options.data, { copy: ["_destroy"] });
}
};
相关文章:
- 奇怪的Javascript结果
- Javascript(jQuery)给了我奇怪的结果
- JSONP请求返回结果,但也触发error_callback
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Javascript,输出结果后页面不断刷新
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- 将地理编码结果转换为php变量以发布到mysql数据库
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- JQuery:向多个匹配结果添加换行符的最简单方法
- 当查询不在displayField中时,引导Ajax Typeahead不显示结果
- webpack代码拆分了handlerbs文件——结果是文件很大
- JavaScript循环无法正确计算/显示结果
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- Node.js使用Series函数(模式?)实现流控制时出现意外结果
- 试图将onChange函数作为道具传递给GrandChlidren,结果是TypeError:这是未定义的
- jQuery使用api获取typeform结果
- 根据条件检查数据库结果
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- Angular,表达式{{}}的结果没有插入到ng-click中
- knex:根据结果创建数组的合适方法是什么