如何在jsview中绑定到element属性

时间:2014-04-29 00:47:08

标签: javascript jsviews

我有一个如下标签。 我想知道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>

1 个答案:

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

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