【发布时间】:2017-10-06 02:22:44
【问题描述】:
我有一个具有 2 个可观察属性的可观察数组。通过 UI 放置输入框时,我可以更新数组,如下所示
<tbody data-bind="foreach: Scopes.ScopesData">
<tr style="vertical-align: baseline">
<td style="white-space:nowrap"><span data-bind="text: name" /></td>
<td>
<input type="checkbox" data-bind="checked: HeadCountFlag, enable: isAvailable" />
</td>
<td>
<input data-bind="textInput: HeadCountpercent, enable: isAvailable" class="amount" />
</td>
</tr>
</tbody>
在这里 ScopesData 是一个可观察的数组和 2 个属性 HeadCountFlag 和 HeadCountpercent 也是可观察的。
我可以对其进行更改并看到它得到如下更新
<span data-bind="text: Scopes.ScopesData()[0].HeadCountpercent()"></span>
现在我想在某些事件发生时通过一些 javascript 代码更新它 我可以更改数据并且它也被保存,但它没有反映在 UI 中。
model.Scopes.ScopesData._latestValue[0].HeadCountpercent._latestValue = 99;
谁能告诉我我需要做哪些更改才能从 js 代码更新此 Scopes.ScopesData()[0].HeadCountpercent() 并查看它在 UI 中的更新。
谢谢
【问题讨论】:
-
你需要把你正在改变的东西变成一个可观察的,并通过那个可观察的来改变它。
-
请使用 Stack Snippets(
[<>]工具栏按钮)通过 runnable minimal reproducible example 演示问题来更新您的问题。 -
ScopesData 数组和 HeadCountpercent 属性都是可观察的。你能告诉我你指的是什么吗?
-
我建议阅读knockoutjs.com 上的教程。对 KO 的介绍非常好。
-
感谢您更改可观察指针的值..让我朝着正确的方向思考。
标签: javascript knockout.js knockout-3.0