是否可以动态创建绑定?假设我有一个名为'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?
由于
答案 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中有一个完整的例子。只需看看你的控制台。