在对象创建时动态创建绑定 - 可能吗?

时间:2012-03-06 06:42:29

标签: javascript ember.js

是否可以动态创建绑定?假设我有一个名为'App.obj'的对象,其中包含2个属性'alpha'和'beta',我希望在2个位置使用相同的视图:

{{view App.AView name="alpha"}}

{{view App.AView name="beta"}}

该视图旨在绑定到App.obj的'alpha'或'beta'属性,具体取决于其name属性的设置,这样当bound-to属性更改时,视图也会更改。所以这里练习的重点是,给定一个对象上两个非常相似的属性,我可以只创建一个将绑定到其中任何一个的视图,并在该属性更改时自行更新。

是否可以根据创建时使用'name'传递给它的内容,使视图对象在App.obj上动态绑定到alpha或beta?

由于

1 个答案:

答案 0 :(得分:2)

为什么不只是{{view App.AView name="alpha" objBinding="App.obj"}}然后在你的App.AView定义中

App.AView = Ember.View.extend({

didInsertElement: function() {
    var name = this.get('name');
    var objAlpha = this.getPath('obj.alpha');
    var objBeta = this.getPath('obj.beta');

    if(name == 'alpha') {
        console.log(objAlpha);
    } else if (name == 'beta') {
        console.log(objBeta);
    }
}
});

我在this jsFiddle中有一个完整的例子。只需看看你的控制台。