文本的数据绑定选项在 jsviews-jqueryui-widgets 中不起作用

data binding option to text not work in jsviews-jqueryui-widgets

如果像这样使用选择菜单并将数据绑定到选项文本:

{^{selectmenu selectedAlbum}}
    <option value="-">Please select</option>
    {^{for albums}}
        <option data-link="value{:id} {:name} selected{:id == ~root.selectedAlbum}">                                                            </option>
    {{/for}}
{{/selectmenu}}

然后像这样绑定 属性 "name":

<input data-link="albums[selectedAlbum].name" />

因此,当更改 属性 "name" 然后更改 DOM 元素时,小部件不会刷新。

也许我做错了什么?

example code in fiddle

jQuery UI 选择菜单小部件隐藏了 <option><select> 元素,而是使用 <li> 元素来显示选项列表。它也不会监听 <option> 元素的变化。 So when the option elements change, the change is not reflected in the displayed <li>s.

如果您使用常规的 <select> 元素,那么您的方案将有效。但是如果要使用jQueryUI选择菜单,需要强制刷新

这是一种方法:

$.observable(app.albums).observeAll(function() {
  // Refresh the view if albums change
  $.view("#content").get(true, "selectmenu").parent.refresh();
});

参见: