【发布时间】:2014-10-17 20:35:31
【问题描述】:
我正在将我的淘汰赛项目升级到 durandal,并注意到一些标准淘汰赛绑定没有按预期工作。
淘汰赛在这之间没有任何区别:
<!-- ko text: someObservable" --><!-- /ko -->
还有这个:
<!-- ko text: someObservable()" --><!-- /ko -->
Durandal 的组合引擎似乎无法正确处理第一种情况(没有括号)。我最终得到dependentObservable 函数的字符串表示,而不是它的值:
function dependentObservable() { if (arguments.length > 0) { if (typeof writeFunction === "function") { // Writing a value writeFunction.apply(evaluatorFunctionTarget, arguments); } else { throw new Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters."); } return this; // Permits chained assignments } else { // Reading the value if (!_hasBeenEvaluated) evaluateImmediate(); ko.dependencyDetection.registerDependency(dependentObservable); return _latestValue; } }
durandal 是否需要在绑定字符串的末尾加上括号,还是可以以某种方式配置?
【问题讨论】:
-
这应该可以正常工作,因此没有特殊的设置或配置选项。但是,您应该确保您没有包含其他可观察对象的可观察对象。所以请检查您的
someObservable是否包含实际值,而不是另一个可观察值。 -
绝对同意 nemesv 在这里验证了这个工作多次。
标签: knockout.js durandal durandal-2.0