KnockoutJS observable 未在屏幕上更新
Posted
技术标签:
【中文标题】KnockoutJS observable 未在屏幕上更新【英文标题】:KnockoutJS observable not updated on screen 【发布时间】:2017-09-09 21:56:02 【问题描述】:我似乎做错了什么,但无法弄清楚!我这里有一个小提琴:
https://jsfiddle.net/L69jk5yL/
我有一个可观察的 _index,它最初设置为 11。当我在下拉列表中选择某些内容时,该值会更新为 12,正如我在淘汰模型中看到的那样,但是屏幕上的值不会更新。
function viewModel()
var self = this;
self._index = ko.observable("11");
self.selectResponse = function (item)
alert('current ko value: ' + self._index());
self._index = "12";
alert('new ko value: ' + self._index);
ko.applyBindings(new viewModel());
<p>index: <strong data-bind="text: _index"></strong></p>
<select name="dateSelected" id="dateSelected" data-bind="event: change: $root.selectResponse ">
<option value="">Select something...</option>
<option value="a">a</option>
</select>
【问题讨论】:
您必须通过使用值调用它来设置它:self._index("12")
。您是否完成了教程或阅读了文档?
【参考方案1】:
当你更新一个 Knockout Observable 时,你必须调用 observable 函数,例如
self._index("12");
通过编写self._index = "12";
,您实际上是将 Observable 属性替换为值为“12”的标量字符串属性。
【讨论】:
一个巨大的“Doh!”非常感谢您的快速回答! 乐于助人。如果这解决了您的问题,您能否考虑接受这个答案?以上是关于KnockoutJS observable 未在屏幕上更新的主要内容,如果未能解决你的问题,请参考以下文章
Knockoutjs之observable和applyBindings的使用
Knockoutjs之observable和applyBindings的使用
KnockoutJS 查找 ko.observable() 长度
KnockoutJs observable array 通过计算 observable 和节流