Ember - 将控制器值绑定到应用程序控制器

Ember- Binding Controller Value To Application Controller

本文关键字:控制器 应用程序 绑定 Ember      更新时间:2023-09-26

为了证明概念,我试图将控制器x的一个值绑定到应用程序控制器。

更具体地说,我将 title 属性绑定到应用程序控制器上的相应 title 属性。

但是,它不起作用,我不知道为什么。

window.App = Ember.Application.create();
App.SiteController = Ember.ObjectController.extend({
    needs: "application",
    titleBinding: "controllers.application.title"
});
App.IndexController = App.SiteController.extend({
    init: function() {
        this._super();
        this.set("title", "Home");
    }
});

http://jsbin.com/ucanam/1743/edit

我是否理解错了绑定?

绑定在

init 方法内部时不会更新,因为模板不会更改。你需要向on('init')注册一些函数,所以它会在对象初始化后被调用。

您可以将索引控制器替换为以下内容:

App.IndexController = App.SiteController.extend({
    setupTitle: function() {        
        this.set("title", "Home");
    }.on('init')
});

我用这个实现 http://jsbin.com/ucanam/1745/edit 更新了你的 jsbin