如何在JsViews数据链接方法中访问父数据

时间:2016-11-03 22:56:21

标签: javascript jsrender jsviews

是否可以从JsViews中的数据链接函数中访问父数据?

{^{for sections}}
...
{^{for itemTypes}}
    <tbody>
       <tr>
        <td>{^{:label}}</td>
        <td>{^{if addable==true}}<button class="btn btn-sm btn-primary" data-link="{on ~addItem}">Add an item</button>{{/if}} </td>
      </tr>
     </tbody>
{{/for}}
...
{{/for}}

是否可以从addItem函数访问节数据(父节点)?

 addItem: function(ev, eventArgs) {
   var view = eventArgs.view;
   var index = view.getIndex();
   var parent = ????
   ...
 }

由于

1 个答案:

答案 0 :(得分:1)

文档在一些地方提供相关信息,例如:

对于addItem方法中的编程访问,您可以使用视图API逐步查看视图层次结构,然后获取数据:

include ('yourHtmlFile.html');

var section = view.parent.parent.data;

或者,您可以声明性地将节数据作为上下文参数传递:

var section = view.parent.get("item").data;

然后直接使用它:

{^{for itemTypes ~section=#data}}
...
<button ... data-link="{on ~addItem ~section}">