2013-07-11 3 views
6

Ember.js (и данные Ember) позволяет указать свойства модели, такие как id, label и description. Но я разрешаю своим пользователям добавлять свои собственные свойства в любую модель, что, очевидно, невозможно для меня знать. Есть ли способ динамически добавлять свойства модели во время выполнения? (И что еще более важно, будут ли Ember.js распознавать изменения этих свойств и сохранять их?)Свойства динамической модели Ember.js

ответ

13

Ember определяет свойства объекта через Ember.defineProperty. Подпись составляет Ember.defineProperty(object, propertyName, function). Например, чтобы задать свойство lorem подкрепленной _lorem, вы можете использовать

Ember.defineProperty(this, 'lorem', 
    Ember.computed(function (key, value) { 
    if (value) { 
     this.set('_lorem', value); 
     return value; 
    } else { 
     return this.get('_lorem'); 
    } 
    } 
)); 

Вы можете вызвать этот метод, основанный в обработчике ввода пользователя, когда propertyName является динамическим. Этот вид лучше всего подходит для расширения системы объектов Meta. Предостережение рекомендуется, особенно при использовании пользователем!

+0

хороший ответ @Darshan! – intuitivepixel

+0

Спасибо, я думаю, что это именно то, что мне нужно. – GJK

Смежные вопросы