Ember.js ArrayController没有绑定到正确的控制器?

时间:2013-06-29 11:46:52

标签: ember.js

我正在尝试将Ember.Data集成到我的应用程序中,并且还想了解如何使用ArrayController。不幸的是,我甚至没有绕过控制器上的简单数据绑定。

我根本无法弄清楚我哪里出错,所以我完全希望有人能够指出:嘿,你写的是.extend而不是.create

我正在尝试与Discouse在AdminSiteSettings

中所做的相似的事情

有问题的控制器:

App.UsersController = Ember.ArrayController.extend({
    foo: 'bar'
});

路线:

App.UsersRoute = Ember.Route.extend({
    model: function () {
        var users = App.User.find();
        return users;
    },
    setupController: function (controller, model) {
        controller.set('model', model);
        console.log(controller.get('foo'));  // this works correctly => bar
    }
});

唯一问题:正在呈现模板,但我无法绑定到foo属性:

<script type="text/x-handlebars" data-template=name="users">
    We render the correct template
    {{foo}}
</script>

唯一的问题是:模板永远不会呈现'bar'。它只是空的。

现在我在Discourse中找到了类似的东西,他们有一个绑定到filter的文本框: https://github.com/discourse/discourse/blob/master/app/assets/javascripts/admin/controllers/admin_site_settings_controller.js

我无法理解为什么我的控制器属性没有出现,(是的,我实际上是想让Ember.data工作,但是因为这可以很容易地在没有它的情况下再现,我想我会满足于简单的foo: bar属性:(

正在使用的版本

  • Ember.js:v1.0.0-rc.4-23-gbfd3023
  • 把手:1.0.0-rc.4
  • Ember.data:13

欢迎提出任何指示。谢谢!

1 个答案:

答案 0 :(得分:2)

我不确切知道你的应用失败的位置,但我尝试重新创建你的用例,在这个例子中jsbin它正常工作,看一看。

希望它有所帮助。