2013-07-11 9 views
6

Ember.js(とEmber Data)では、id,labeldescriptionなどのモデルのプロパティを指定できます。しかし、私は自分のユーザーが任意のモデルに独自のプロパティを追加できるようにしていますが、これは明らかに私が知ることは不可能です。実行時にモデルにプロパティを動的に追加できる方法はありますか? (さらに重要なことに、Ember.jsはこれらのプロパティの変更を認識して保存しますか?)Ember.js動的モデルのプロパティ

答えて

13

EmberはEmber.definePropertyでオブジェクトプロパティを定義します。署名はEmber.defineProperty(object, propertyName, function)です。 _loremに裏打ちされたloremプロパティを定義するたとえば、あなたはpropertyNameが動的であるときは、ユーザーの入力ハンドラに基づいて、このメソッドを呼び出すことができます

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

を使用することができます。 このようなことは、Metaオブジェクトシステムを拡張するのに最適です。特にユーザの入力に注意してください!

+0

nice answer @Darshan! – intuitivepixel

+0

ありがとう、私はこれがまさに私が必要と思うものだと思います。 – GJK

関連する問題