javascript - 将数据发送到 EmberJS 中的嵌套 Controller / View

标签 javascript ember.js

我从顶级应用程序级别开始摆弄 EmberJS 中的 JSON 结构,并尝试将数据传递给通用 MenuController/MenuView 子级,以便我可以重用它。

我想出的用于解决数据如何通过嵌套 ember 结构传递的 JSON 是这样的:

JSON

{
appName: "CheesyPuffs"
menuItems: [
    {name:"Gouda"}
    {name:"Crackers", menuItems: [
                              {name: "Cheezeits"}
                            ] 
    }
]

}

Handlebars

<script type="text/x-handlebars">
<div class='app'>
  <div class='header'>
     {{#if menuItems}}
    // Embed template 'menu'
     {{/if}}
  </div>
</div>
</script>

<script type="text/x-handlebars" data-template-name="menu">
<ul>
{{#each menuItems}}
    <li>{{name}}</li>
    {{#if menuItems}}
       // Embed menu template
     {{/if}}
{{/each}}
</ul>
</script>

JS

App.MenuController = Ember.ArrayController.extend({
    actions: {
        click: function(){
           // Signal Event to App
        }
    }
});
App.MenuView = Ember.View.extend({

   click: function(){
        console.log("I clicked a menu");
   }

});

我见过的所有关于嵌套内容的示例都涉及带有经典 _id 子路由的路由。我不确定如何告诉 App Router 它需要将 menuItems 数据传递到嵌入同一 View 中的子 Controller 。我感觉你可以通过模板和编程来做到这一点?如果是这样,你会如何同时做到这一点?

最佳答案

使用模板时,您应该使用渲染。这就是你应该这样做的方式,以编程方式没有意义。

<script type="text/x-handlebars">
<div class='app'>
  <div class='header'>
     {{#if menuItems}}
        {{render 'menu' menuItems}}
     {{/if}}
  </div>
</div>
</script>

<script type="text/x-handlebars" data-template-name="menu">
<ul>
{{#each menuItems}}
    <li>{{name}}</li>
    {{#if menuItems}}
        {{render 'menu' menuItems}}
     {{/if}}
{{/each}}
</ul>
</script>

关于javascript - 将数据发送到 EmberJS 中的嵌套 Controller / View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22573829/

相关文章:

javascript - HTML5 Href "sms"内容带有断线标记?

javascript - 我可以使用日志记录功能来忽略某些服务器 channel 类别吗?

ember.js - 在 Ember 中设计主导出

json - 当 json 响应根键为单数时出现 Ember 错误

javascript - JS加载外部脚本并本地配置

javascript - 如何访问 withStyle 组件内的 DOM 节点?

javascript - jQuery 创建的 <a> 链接在 IE 中未触发

javascript - Emberjs重命名 '/'路线

ruby-on-rails - 使用Ember Data和Rails后端的示例应用程序

ember.js - 如何自定义 application.hbs 模板的 View 元素?