如何将 steve 的 Knockout-ES5-Plugin ( http://blog.stevensanderson.com/2013/05/20/knockout-es5-a-plugin-to-simplify-your-syntax/ ) 与 Breeze 和 Durandaljs 一起使用?
非常感谢!
如何将 steve 的 Knockout-ES5-Plugin ( http://blog.stevensanderson.com/2013/05/20/knockout-es5-a-plugin-to-simplify-your-syntax/ ) 与 Breeze 和 Durandaljs 一起使用?
非常感谢!
对于 Durandal,您可以挂钩到视图模型绑定器的 beforeBind 挂钩,以便在绑定之前自动让 Steve 的插件转换您的对象。这可能无法完美运行,我自己没有尝试过。另外,请记住,他的插件不会转换完整的对象图,只会转换对象的基本属性。因此,以这种方式绑定可能不会 100% 如您所愿。
Durandal 2.0 有它自己的 ES5 插件,可以正常工作:) 它还没有发布,但如果你想生活在边缘,它和 2.0 的其余部分都在源代码之下。发售时间定于 8 月中旬。
关于微风,我不确定。
这篇文章的选定答案采用以下方法:
ko.track(entity._backingStore)
通过在用户指示他们想要编辑记录时有效地调用,使用 ES5 插件使实体“根据需要”可观察。这样做的好处是对于长长的实体列表更轻,因为直到它们需要时才使它们可观察。ES5 插件增加了 HTML 中的绑定不需要在不可观察实体和可观察实体之间更改的好处(因为不需要括号)。
如果您要求所有实体在默认情况下都是“ES5”可观察的,那么您最好编写一个自定义 modelLibrary 适配器 - 查看 Breeze 调试文件(或源代码)以查看三个内置适配器:backingStore
、backbone
和ko
作为例子。