0

我正在构建的 Ember.JS 应用程序有点问题:

    App.userController = Ember.ArrayController.create({
        content: [],

        init: function() {
            this.set('content', []);
            this.refresh();
        },

        refresh: function() {
            //Refresh Action
        }
    });

    App.supplierController = Ember.ArrayController.create({
        content: [],

        init: function() {
            this.set('content', []);
            this.refresh();
        },

        refresh: function() {
            //Refresh Action
        }
    });

    <h1>Users</h1>
    {{#each user in App.userController}}
        {{user.name}} - {{user.age}}
    {{/each}}

    <h1>Suppliers</h1>
    {{#each supplier in App.supplierController}}
        {{supplier.name}} - {{supplier.revenue}}
    {{/each}}

它有效......但用户显示在与供应商相同的列表中?如果我删除供应商控制器,它们会显示在正确的位置。我认为这与有两个实例有关,Ember.ArrayController但我不确定。它显示如下:

Users
-----------
Suppliers
-----------
User 1 - 
User 2 -
Supplier 1 - £100

什么时候应该显示这个:

Users
-----------
User 1 - 30 
User 2 - 25

Suppliers
-----------
Supplier 1 - £100
4

1 回答 1

1

你的代码看起来不错。拥有两个ArrayController. 我根据您的问题制作了一个 jsbin,并在正确的位置查看用户/供应商。在这里查看:http: //jsbin.com/ovitak/1/edit

由于您的示例没有显示数据是如何加载的,因此我实现了 refresh() 方法以根据您的预期输出填充用户/供应商列表:

App = Ember.Application.create({});

App.userController = Ember.ArrayController.create({
    content: [],

    init: function() {
        this.set('content', []);
        this.refresh();
    },

    refresh: function() {
      this.addObject({name: 'u 1', age: 22});
      this.addObject({name: 'u 2', age: 35});
    }
});

App.supplierController = Ember.ArrayController.create({
    content: [],

    init: function() {
        this.set('content', []);
        this.refresh();
    },

    refresh: function() {
        //Refresh Action
      this.addObject({name: 'supplier 1', revenue: 200});
    }
});
于 2013-03-11T14:41:50.787 回答