knockoutJS中的动态响应属性

时间:2013-09-24 17:50:05

标签: knockout.js

我是淘汰赛的新手,我真的很喜欢。我的问题是我无法弄清楚如何在绑定中包含某种验证。我尝试做的是禁用按钮,除非文本字段中有文本。

<input type="text" name="answer" id="txtAnswer" placeholder="Answer..." data-bind="value: NewAnswer" />
<button data-inline="true" data-bind="click: addAnswer, enable: NewAnswer() != ''" >Add</button>

在我的视图模型中,我有      self.NewAnswer = ko.observable($("#txtAnswer").val())

我已经尝试了我能想到的一切,但无法使按钮响应。似乎评估一次,在页面加载时,没有任何变化。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:2)

你的观察看起来很时髦。在调用observable时,您不需要jQuery选择器。您可以通过data-bind属性将observable链接到元素:

self.NewAnswer = ko.observable(''); //replace '' with any default value you want

然后你的标记:

<input type="text" name="answer" id="txtAnswer" placeholder="Answer..." data-bind="value: NewAnswer" />

修改

这是一个演示工作示例的jsFiddle:http://jsfiddle.net/c6uts/