跨视图访问属性

时间:2013-04-02 13:00:56

标签: ember.js handlebars.js

从视图中的控制器访问和更改属性的有效方法是什么?我在视图中有多个视图。我必须在不引用parentView的情况下更改this.get('parentView.property')的属性,因为我经常重复使用视图,层次结构会发生很大变化。

如何在ember.js中有效地维护视图中的变量?

1 个答案:

答案 0 :(得分:1)

如果视图的属性没有绑定为模型,我遵循的一种方法是在视图之间使用通用控制器并观察控制器的属性。

例如

 App.TestController = Ember.Controller.extend({
        commonProperty: "Val1"
    });

    App.View1 = Ember.View.extend({
        ObserverCommonProperty : function() {
             //runs code 
        }.observes('controller.commonProperty')
    });
    App.View2 = Ember.View.extend({
        didInsertElement: function() {
            this.get('controller').set('commonProperty',"Val2");
        }
    });

这样你就不会担心其他视图对象的存在,也不会破坏任何MVC规则