解释ember模板两次?

时间:2013-08-15 16:12:11

标签: javascript ember.js

我有一个模板,循环遍历所有导航链接的数组。但是我想使用ember linkTo helper来获取我的链接。

我的模板:

<script type="text/x-handlebars" id="_sideNav">
    <div id="sideNav">  
        <ul>
        {{#each model.sideNav}}
        <li>{{link}}
            <a>
                <i {{bindAttr class="iconClass"}}></i><p>{{label}}</p>
            </a>
        </li>
    {{/each}}
    </div>
</script>

我的模特:

[
    {
        "label": "Overview",
        "iconClass": "icon-overview",
        "link": "{{#linkTo Overview}}Hello{{/linkTo}}"
    }, {
        "label": "Posts",
        "iconClass": "posts",
        "link": "{{#linkTo totalEnergy}}Hello{{/linkTo}}"
    }
]

你可以看到我已经在我的模型中放置了linkTo助手,这没有用,当然我的文字“{{#linkTo totalEnergy}} Hello {{/ linkTo}}”出现在我的页面上。

但我认为你可以看到我想在这里得到的东西,我认为能够使用模板生成其他模板真的很有帮助。我的实际导航有12个以上的链接,这些链接根据服务器数据和页面上的相关内容而变化。

我觉得我可以破解它以使其工作,通过不会初始化ember应用程序,直到一些把手模板运行,但我想知道是否有人有更好的主意。

由于

2 个答案:

答案 0 :(得分:1)

我认为更简单的是返回关于链接的元数据,例如:

App.MenuController = Ember.ArrayController.create({
    content: [
        {"route": "student", "title": "Student Info Page"}, 
        {"route": "payments", "title": "Payments and Pricing"}, 
        {"route": "policy", "title": "Mine"}, 
        {"route": "biography", "title": "About Me"}
    ]
});

然后使用以下命令在模板中设置:

{{#each routeObject in App.MenuController}}
    {{#linkTo routeObject.route}}{{routeObject.title}}{{/linkTo}}
{{/each}}

但要启用linkTo与某个对象的绑定。需要设置:

Ember.ENV = {
    HELPER_PARAM_LOOKUPS: true
}

答案 1 :(得分:0)

您可以为链接创建另一个模板,并使用'render'帮助程序为每个链接传递模型