我的淘汰赛应用程序具有以下结构:


计算值是两个可观察值之和(comp1)
一个observableArray(默认为空白)
一组通过单独的viewModel函数推入observableArray的数据


我的问题在于,当将可计算的可观察值(comp1)推入数组时,在主视图中更新它时,它的值在表中显示时(通过单独的viewModel函数)不会改变。

我设置了一个Codepen,以更好地解释该问题,并使其更加清晰易懂,因为我真的不认为我已经很好地解释了该问题,仅通过文本进行解释有点复杂!

简而言之:(comp1)的值在主视图中更新时,不会在表内部更新(它是从observableArray生成的)。

如果您不确定有任何疑问,请询问,但是我认为,一旦查看Codepen,一切都应该更加清晰。

http://codepen.io/anon/pen/nwgGB

最佳答案

因为您要传递maths_total(self.maths_total())的展开值。这样,tableView不知道该值何时更改。相反,您应该传递实际的可观察值:

self.table_totals.push(new tableView('column 1', 15, self.maths_total, 45));


然后检查tableView中的变量

self.val_2 = ko.isObservable(val2) ? val2 : ko.observable(val2)


http://codepen.io/anon/pen/qFsgu

关于javascript - knockout 动态更新observableArray值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23492760/

10-12 02:15