相关疑难解决方法(0)

把手 - 是否可以在部分中访问父上下文?

我有一个车把模板,为一个子元素加载一个部分.

我需要从部分中的调用模板中的父上下文中访问变量...似乎没有解决部分内部的任何问题.

简化的代码如下:

模板

    {{#each items}} 
        {{> item-template}}
    {{/each}}
Run Code Online (Sandbox Code Playgroud)

部分的

    value is {{value}}
Run Code Online (Sandbox Code Playgroud)

(显然真正的代码更复杂,但它是相同的原则,在部分内部..似乎是未定义的.)


为了表明它是未定义的,我使用了一个非常简单的帮手whatis:

Handlebars.registerHelper('whatis', function(param) {
    console.log(param);
});
Run Code Online (Sandbox Code Playgroud)

并将以上代码更新为:

更新的模板

    {{#each items}} 
        {{whatis ..}}  <-- Console shows the correct parent context
        {{> item-template}}
    {{/each}}
Run Code Online (Sandbox Code Playgroud)

更新部分

    {{whatis ..}}  <-- Console shows "undefined"
    value is {{value}}
Run Code Online (Sandbox Code Playgroud)

有办法解决这个问题吗?我错过了什么吗?

编辑:关于把手的github项目的这个问题有一个未解决的问题

javascript templates handlebars.js

58
推荐指数
4
解决办法
3万
查看次数

Handlebars.js - 从2D数组访问父索引

我在JSON对象中有一个2D数组(称为table;)

data = {

tableID : "testTable",

table : [
[{type:'a', value:'x'},{type:'a', value:'y'},{type:'a', value:'z'}],
[{type:'a', value:'x'},{type:'a', value:'y'},{type:'a', value:'z'}],
[{type:'a', value:'x'},{type:'a', value:'y'},{type:'a', value:'z'}]
]

};
Run Code Online (Sandbox Code Playgroud)

并且已经使用模板成功地使用把手渲染它:

<table id = "{{tableID}}-table">

{{#each table}}

    <tr id = "{{../tableID}}-row-{{@index}}">

        {{#each this}}

            <td id = "{{../../tableID}}-row-{{../index}}-col-{{@index}}">

                {{this.type}}-{{this.value}}

            </td>

        {{/each}}

    </tr>

{{/each}}

</table>
Run Code Online (Sandbox Code Playgroud)

但是,在td标记id中,我似乎无法访问父索引{{../index}} - 行的索引.什么都没有返回:

<td id = "testTable-row--col-x">
Run Code Online (Sandbox Code Playgroud)

但是,我可以访问当前上下文的索引{{@index}}.

有任何想法吗??

很多人提前感谢!!

丰富

ps使用1.0.0-rc.3

arrays indexing each this handlebars.js

5
推荐指数
1
解决办法
1894
查看次数

标签 统计

handlebars.js ×2

arrays ×1

each ×1

indexing ×1

javascript ×1

templates ×1

this ×1