Можно ли изменить привязку свойства объекта Emberjs после его создания? - PullRequest
1 голос
/ 15 марта 2012

Это не похоже на работу http://jsfiddle.net/8haXN/7/

App.president = Ember.Object.create({
    name: "Barack Obama",
    name2: "George Bush"
});

App.country = Ember.Object.create({
    presidentNameBinding: 'App.president.name'
});

App.country.set('presidentNameBinding', 'App.president.name2');
App.country.presidentName //stil returns 'Barack Obama'

То, что я действительно пытаюсь сделать, это изменить contentBinding для CollectionView с одного ArrayController на другой.Это возможно или это плохая идея?

Ответы [ 2 ]

0 голосов
/ 15 марта 2012

Использование Ember.bind, см. http://jsfiddle.net/8haXN/8/

App = Em.Application.create()
App.president = Ember.Object.create({
    name: "Barack Obama",
    name2: "George Bush"
});

App.country = Ember.Object.create({
    // Ending a property with 'Binding' tells Ember to
    // create a binding to the presidentName property.
    presidentNameBinding: 'App.president.name'
});

App.someController = Em.Object.create({
    change: function() {
        Ember.bind(App, 'country.presidentName', 'App.president.name2');
    }
});​
0 голосов
/ 15 марта 2012

Вам нужно будет связать вручную таким образом:

App.country.bind('presidentName', Em.Binding.from('App.president.name2'));

Вот jsfiddle: http://jsfiddle.net/efPGF/

Чтобы узнать больше о привязках, я рекомендую взглянуть на старую вики Sproutcore: http://wiki.sproutcore.com/w/page/12412963/Runtime-Bindings. Просто не забудьте изменить префикс SC на Ember.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...