2016-07-20 3 views
0

おそらく単純な答えですが、初心者としては、例えば私のコントローラの内側にemberモデルのプロパティを格納して新しいデータと比較することができました。それについてやってみる?Ember.jsの初期モデルのプロパティ値を保存する

より多くのコンテキストを提供するために、値がmodel.user_inputを使用して取得される入力フィールドがあります。ビューが最初にロードされたときにこのフィールドを保存し、値が変更されたときに比較できるようにします。私は計算されたプロパティを使用しようとしましたが、モデルが変更されたときにも更新されています。お使いのコントローラのルートで

答えて

0

は、あなたのコントローラが初期値セーブするように、あなたのコントローラに設定できます。上の値の変更は、あなたは、単にEmber.get(this, 'original_input')を経由して元の値を取得することができるとき

import Ember from 'ember' 

export default Ember.Route.extend({ 
    model() { 
    return { 
     'user_input': /* ... */ 
    } 
    }, 

    setupController(controller, model) { 
    this._super(...arguments) 
    controller.set('original_input', Ember.get(model, 'user_input')) 
    } 
}) 

そのように、あなたのコントローラ:

import Ember from 'ember' 

export default Ember.Controller.extend({ 
    'original_input': '', 

    isChanged: Ember.computed('model.user_input', function() { 
    return Ember.get(this, 'original_input') !== Ember.get(this, 'model.user_input') 
    }) 
}) 
+0

また、 'model.get( 'hasDirtyAttributes')'を使用することもできます。 –

+0

素晴らしい作品です、ありがとうございます! –

関連する問題