gpt4 book ai didi

templates - 对象的 Ember.js View

转载 作者:行者123 更新时间:2023-12-03 07:58:00 27 4
gpt4 key购买 nike

我的 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com