templates - 对象的 Ember.js View

标签 templates view ember.js handlebars.js

我的 Ember.js 应用程序中有一个简单的 View ,如下所示。每个“content”元素由两个对象组成,第一个和第二个:

{{#each App.myController.content}}
    {{view for content.first}}
    {{view for content.second}}
{{/each}}

我想在另一个 handlebars 模板脚本中分别为每个内容定义 View (这样就不必写两次)。如何将第一个和第二个变量传递给 View ?


这是一个代码示例,请参阅 http://jsfiddle.net/Zm4Xg/5/ :

Handlebars :

<script type="text/x-handlebars" data-template-name="contact-view">
     <div>{{name}}</div>
     <img {{bindAttr src="avatar"}} {{bindAttr alt="name"}}>
</script>

<script type="text/x-handlebars">
  {{#each App.contactsController.pair}}
    <div class="menu_vertical_group">
      {{#with this.first}}
         {{view App.contactView}}
      {{/with}}

      {{#with this.second}}
         {{view App.contactView}}
      {{/with}}

    </div>
  {{/each}}
</script>

JavaScript:

App = Ember.Application.create();

App.Contact = Em.Object.extend({
    name: null,
    avatar: null
});

App.contactView = Ember.View.extend({
    templateName: 'contact-view'
});

App.contactsController = Em.ArrayController.create({
    content: [],
    initData: function(data) {
        var contacts = data.map(function(contact) {
            return App.Contact.create({
                "name": contact.name,
                "avatar": contact.avatar
            });
        });
        this.pushObjects(contacts);
    },

    pair: (function() {
        content = this.get('content');
        var result = [];
        for (ii = 0; ii < content.length; ii += 2) {
            result.pushObject({
                "first": content[ii],
                "second": content[ii + 1] ? content[ii + 1] : null
            });
        }
        return result;
    }).property('content')
});

App.contactsController.initData([{
    "name": "John Doe",
    "avatar": "/john.jpg"},
{
    "name": "Someone Else",
    "avatar": "/else.jpg"}]);​

最佳答案

是这样的吗?

{{#each App.myController.content}}
    {{view MyView contentBinding="content.first"}}
    {{view MyView contentBinding="content.second"}}
{{/each}}

关于templates - 对象的 Ember.js View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11519003/

相关文章:

php - MVC : Why bother "sending" data to the View

android - 在android中实现加载屏幕的最佳方式

nginx - Ember CLI 通过 Lighting Strategy 部署

javascript - ember this.get 未捕获类型错误 : Object #<Window> has no method 'get'

android - 如何在 Android 中为 View 中的左侧幻灯片制作动画

c++ - std::function 的 typename 关键字

c++ - 为什么必须使用 'typename' 和 '::type' 前缀/后缀调用所有 type_traits 类?

c# - 如何从列表类型中获取模板类型?

javascript - Ember-Data:DS.EmbeddedRecordsMixin 的预期使用模式

c++方法根据字符串返回不同的类型