如果使用selectmenu并将数据绑定到选项文本,如下所示:
{^{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元素但小部件不刷新。
也许我做错了什么?
答案 0 :(得分:1)
jQuery UI selectmenu小部件隐藏了<option>
和<select>
元素,而是使用<li>
元素来显示选项列表。它也不会听取<option>
元素的变化。因此,当选项元素发生更改时,更改不会反映在显示的<li>
s。
如果您使用常规<select>
元素,那么您的方案将起作用。但是如果你想使用jQuery UI selectmenu,你需要强制刷新。
这是一种方法:
$.observable(app.albums).observeAll(function() {
// Refresh the view if albums change
$.view("#content").get(true, "selectmenu").parent.refresh();
});
见: