dnl*_*ddr 2 javascript jquery knockout.js
我想向stackoverflow社区问好.
我几天前才开始使用淘汰赛.
正确知道我正在使用它为我正在开发的CMS制作动态菜单构建器.
这是代码:http://jsfiddle.net/dnlgmzddr/HcRqn/
问题是,当我从选择框中选择一个元素时,输入字段会按照我的预期更新,但是observable不会反映更改.因此,未启用添加按钮.
我错过了什么?我该如何解决?
谢谢.
填充url字段时,您需要触发change事件以使itservable得以升级.所以,你可以这样做:
$("#url").val('/pages/' + id).change();
Run Code Online (Sandbox Code Playgroud)
另一个选择就是Knockout精神中的更多选择是在你的选择上使用绑定.在这种情况下,您可能希望使用该值填充observable,然后使用手动订阅将格式化的值默认为输入字段.
this.itemUrl = ko.observable();
this.selectedUrl = ko.observable();
this.selectedUrl.subscribe(function(newValue) {
if (newValue) {
this.itemUrl("/pages/" + newValue);
}
}, this);
Run Code Online (Sandbox Code Playgroud)
然后,将您的选择绑定到selectedUrl:
<select id="pagedList" data-bind="value: selectedUrl">
<option value=""><option>
<option value="test">Test</option>
</select>
Run Code Online (Sandbox Code Playgroud)
以下是一个示例:http: //jsfiddle.net/rniemeyer/HcRqn/21/
如果您的选项的"价值"是网址,您还可以消除额外的可观察和手动订阅.