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

Javascript 在对象创建时动态创建绑定-可能吗?,javascript,ember.js,Javascript,Ember.js,是否可以动态创建绑定?假设我有一个名为“App.obj”的对象,它有两个属性“alpha”和“beta”,我想在两个位置将其与相同的视图一起使用: {{view App.AView name="alpha"}} 及 视图将绑定到App.obj的“alpha”或“beta”属性,具体取决于其name属性的设置,这样,当绑定到属性更改时,视图也会更改。所以这里练习的重点是,给定一个对象上的两个非常相似的属性,我可以创建一个单独的视图,绑定到它们中的任何一个,并在属性更改时更新自身 是否可以根据创建

是否可以动态创建绑定?假设我有一个名为“App.obj”的对象,它有两个属性“alpha”和“beta”,我想在两个位置将其与相同的视图一起使用:

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

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

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


谢谢

你为什么不做{{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);
    }
}
});

我有一个完整的例子。只要看看你的控制台。

关键是,如果视图应该绑定到对象的alpha或beta属性,那么当它发生变化时,视图也会发生变化。这将只使用创建视图时的属性值,对吗?我应该在最初的问题中澄清这一点……因此,您有一个属性为
.alpha
.beta
的对象
App.getPath('obj.alpha')
绑定到定义为
{view App.AView name=“alpha”}
的视图?那么,
App.getPath('obj.alpha')
会返回一个上面提到的Ember.View实例吗?如果是这样,我会对你的设计有一些主要的问题。。。在您的澄清中,您能否更具体地说明您正试图解决的问题?代码示例将非常有帮助。将上面的JSFIDLE分叉,并对其进行修改,以演示您遇到的任何问题。我非常乐意看一看:)我只是在JSFIDLE中按了ctrl-r而不是ctrl-s,结果丢失了所有的工作。我现在不想重做它,所以我只想将对象上的每个属性添加到视图的计算属性的依赖项列表中,从而解决我的问题-如何使一个视图看起来完全相同,但基于可配置参数为对象提供不同的属性。
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);
    }
}
});