将数组2D添加到Ember.View的内容数组中

时间:2012-05-20 09:25:04

标签: ember.js

我开始使用Ember,所以我想问一下如何将数组2D添加到Ember.View的内容数组中? E.x

var IconMeaning = {
OK:  ['theme/dark/images/providers/ok.png', 'OK', 'Both'],
Cancel: ['theme/dark/images/providers/delete.png', 'Cancel', 'Both'],
Edit: ['theme/dark/images/providers/edit.png', 'Edit', 'AdminOnly'],
Save: ['theme/dark/images/providers/save.png', 'Submit,Save', 'AdminOnly'],
Add: ['theme/dark/images/providers/plus_blue.png', 'Add,Create,Insert', 'Both'],
Remove: ['theme/dark/images/providers/remove.png', 'Remove,Delete', 'Both'],
Next: ['theme/dark/images/providers/next.png', 'Next,Continue', 'Both'],
Previous: ['theme/dark/images/providers/previous.png', 'Back,Previous', 'AdminOnly'],
Up: ['theme/dark/images/goback.png', 'Up a Level', 'Both'],
Info: ['theme/dark/images/providers/info.png', 'More Information', 'Both'],
Public: ['theme/dark/images/public.png', 'Make,Active/Public', 'AdminOnly'],
Private: ['theme/dark/images/private.png', 'Make,Inactive/Private', 'AdminOnly'],
Calendar: ['theme/dark/images/calendar.png', 'Select Date', 'AdminOnly'],
Download: ['theme/dark/images/providers/download.png', 'Download', 'Both'],
Reload: ['theme/dark/images/providers/reload.png', 'Reload,Refresh', 'AdminOnly'],
Print: ['theme/dark/images/providers/print.png', 'Print', 'Both'],
Unlink: ['theme/dark/images/providers/unlink.png', 'Unlink,Unregister', 'AdminOnly'],
AddToCart: ['theme/dark/images/providers/plus_green.png', 'Add to Cart', 'Both'],
Checkout: ['theme/dark/images/providers/checkout.png', 'Checkout', 'Both'],
Help: ['theme/dark/images/providers/help.png', 'Help', 'Both'],
VideoHelp: ['theme/dark/images/providers/helpbutton.png', 'Video Help', 'Both']

}

我想将它们添加到Ember.View中的内容数组中。非常感谢。

1 个答案:

答案 0 :(得分:2)

您可以为IconMeaning-Object的每个“行”创建一个Ember.Object,其中包含您的键和值数组。然后使用Ember.ArrayController并使用pushObject将所有行推送到其内容数组中:

App.controller = Ember.ArrayController.create({
    content: []
});

for (var propertyName in IconMeaning) {
    var emberObj = Ember.Object.create({
        key: propertyName,
        values: IconMeaning[propertyName]
    });
    App.controller.pushObject(emberObj);
}

使用Ember绑定连接到您的视图:

App.view = Ember.View.extend({
    contentBinding: 'App.controller'
});

我在http://jsfiddle.net/HUHnE/

创建了一个完整的工作示例