1

如何将 steve 的 Knockout-ES5-Plugin ( http://blog.stevensanderson.com/2013/05/20/knockout-es5-a-plugin-to-simplify-your-syntax/ ) 与 Breeze 和 Durandaljs 一起使用?

非常感谢!

4

2 回答 2

3

对于 Durandal,您可以挂钩到视图模型绑定器的 beforeBind 挂钩,以便在绑定之前自动让 Steve 的插件转换您的对象。这可能无法完美运行,我自己没有尝试过。另外,请记住,他的插件不会转换完整的对象图,只会转换对象的基本属性。因此,以这种方式绑定可能不会 100% 如您所愿。

Durandal 2.0 有它自己的 ES5 插件,可以正常工作:) 它还没有发布,但如果你想生活在边缘,它和 2.0 的其余部分都在源代码之下。发售时间定于 8 月中旬。

关于微风,我不确定。

于 2013-06-27T18:25:15.017 回答
3

这篇文章的选定答案采用以下方法:

  • 使用 Breeze 内置的 BackingStore modelLibrary(而不是 Knockout modelLibrary)
  • ko.track(entity._backingStore)通过在用户指示他们想要编辑记录时有效地调用,使用 ES5 插件使实体“根据需要”可观察。

这样做的好处是对于长长的实体列表更轻,因为直到它们需要时才使它们可观察。ES5 插件增加了 HTML 中的绑定不需要在不可观察实体和可观察实体之间更改的好处(因为不需要括号)。

如果您要求所有实体在默认情况下都是“ES5”可观察的,那么您最好编写一个自定义 modelLibrary 适配器 - 查看 Breeze 调试文件(或源代码)以查看三个内置适配器:backingStorebackboneko作为例子。

于 2013-06-27T21:35:26.663 回答