文本的数据绑定选项在 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 元素时,小部件不会刷新。
也许我做错了什么?
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();
});
参见:
如果像这样使用选择菜单并将数据绑定到选项文本:
{^{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 元素时,小部件不会刷新。
也许我做错了什么?
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();
});
参见: