【发布时间】:2014-04-03 14:07:52
【问题描述】:
让我解释一下。我有 webapi 控制器,它返回一些值,稍后使用 Knockout.js 绑定到 UI。我从另一个控制器获得的值之一,但需要绑定到同一个元素。为了使用新值更新 ViewModel,我应该使用订阅方法还是计算方法?我是 Knockout.js 的新手,所以请不要严格评判我 - 即使在阅读文档后,许多事情也会让我感到困惑。
【问题讨论】:
标签: knockout.js
让我解释一下。我有 webapi 控制器,它返回一些值,稍后使用 Knockout.js 绑定到 UI。我从另一个控制器获得的值之一,但需要绑定到同一个元素。为了使用新值更新 ViewModel,我应该使用订阅方法还是计算方法?我是 Knockout.js 的新手,所以请不要严格评判我 - 即使在阅读文档后,许多事情也会让我感到困惑。
【问题讨论】:
标签: knockout.js
一般:
使用 observables 来创建任何 视图模型属性,无论是计算的还是其他的。
代码还可以在多个视图模型之间共享相同的可观察对象,这样两者实际上都提供了相同的可观察对象。这应该只在考虑之后才能完成,但它完全消除了可观察的“代理”。
此外,还可以使用聚合来允许视图绑定到多视图模型(作为同级模型或通过一个 vm 作为另一个的属性/可观察对象进行访问)。
在视图模型属性之外使用事件订阅和处理。
在少数情况下,订阅对于视图模型维护很有用,但通常不应优先于标准视图模型可观察对象。
【讨论】: