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

时间:2016-05-26 09:50:43

标签: jsrender jsviews

如果使用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元素但小部件不刷新。

也许我做错了什么?

example code in fiddle

1 个答案:

答案 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();
});

见: