0

我有一个像下面这样的标签。我想知道 jsview 是否有可能支持将其标题绑定到其文本?我可以在标题中显示相同的文字吗?

<label title="">{^{for Owners}}{{:Name}}{^{if #index < #parent.data.length - 1}}&#59;{{/if}}&nbsp;{{/for}}</label>

预期的渲染结果将是:

<label title="name1; name2; name3">name1; name2; name3</label>
4

1 回答 1

1

当使用 JsViews 对元素、元素属性等进行数据链接时,您需要使用 data-link 属性。使用 JsViewslink方法(与 JsRenderrender方法相反)时,您不能{{...}}在元素标记中嵌套标签。

有关数据链接元素的教程序列,请参见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"
});

另见https://github.com/BorisMoore/jsviews/issues/255

于 2014-04-29T17:02:13.753 回答