我有一个如下标签。 我想知道jsview是否可以支持将其标题绑定到其文本? 我可以在标题中显示相同的文字吗?
<label title="">{^{for Owners}}{{:Name}}{^{if #index < #parent.data.length - 1}};{{/if}} {{/for}}</label>
预期的渲染结果为:
<label title="name1; name2; name3">name1; name2; name3</label>
答案 0 :(得分:1)
当使用JsViews数据链接到元素,元素属性等时,您需要使用data-link属性。使用JsViews link
方法(而不是JsRender render
方法)时,您无法在元素标记中嵌套{{...}}
标记。
有关数据链接元素的教程序列,请参阅http://www.jsviews.com/#samples/data-link。
使用data-link="expression"
非常灵活,因此您可以通过几种方法来实现您的方案。这是一个有三个选择的jsfiddle:http://jsfiddle.net/BorisMoore/j363W/。
它显示了这三种变体:
自定义助手
<label data-link="title{:~listHelper(Owners, Owners.length)}">...
myTmpl.link("#content", data, {listHelper: function(arr) {
return ...; // compute return value
}});
数据方法
<label data-link="title{:nameList()}">...
var data = {
Owners:[{Name: "name1"}, {Name: "name2"}, {Name: "name3"}],
nameList: function() {
return ...; // compute return value
},
...
};
data.nameList.depends ="Owners.length";
自定义JsViews标记
<label data-link="title{nameList Owners}">...
$.views.tags("nameList", {
render: function(Owners) {
return ...; // compute return value
},
depends: "Owners.length"
});