【问题标题】:How to access parent data in JsViews data-linked method如何在 JsViews 数据链接方法中访问父数据
【发布时间】:2016-11-03 22:56:20
【问题描述】:

是否可以从 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 = ????
   ...
 }

谢谢

【问题讨论】:

    标签: javascript jsrender jsviews


    【解决方案1】:

    文档在几个地方提供了相关信息,例如:

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

    var section = view.parent.parent.data;
    

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

    或者,您可以以声明方式将部分数据作为上下文参数向下传递:

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

    然后直接使用:

    addItem: function(section, ev, eventArgs) {
      ...
    }
    

    【讨论】:

    • 谢谢鲍里斯。如此彻底的答案和完美的解决方案。我现在一定会更详细地阅读文档!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多