2017-08-08 20 views
1

モデルからデータを取得しています。モデルがページに統合された後、ページを更新するとデータが消えます。ページを更新するにはどうすればいいですか?

データがまだ更新されないようにしたいと思います。 EmberJsでこれを行う正しい方法は何ですか私に私のdataがリフレッシュするのを防ぐ正しい方法を教えてください。

私のモデルコード:事前に

export default Ember.Route.extend({ 
    model: function(params) { 
    return this.store.peekRecord('card-list', params.id); //works 
    } 
}); 

感謝。あなたはそれを取得しない限り、既存のレコードを確認することができ

UPDATE

import Ember from 'ember'; 

    export default Ember.Route.extend({ 
     model: function(params) { 

     if(this.store.hasRecordForId('card-list', params.id)){ 
      return Ember.RSVP.hash({ 
       model: this.store.peekRecord('card-list', params.id) 
      }) 
     } 
    //I am trying for refresh. but throws error as 
//Error while processing route: cs2i.balance.balanceEdit Ember Data Request GET /api/card-lists/4196074912005007 returned a 404 
     return Ember.RSVP.hash({ 
      model: this.store.findRecord('card-list', params.id) 
     }) 
     } 
    }); 
+0

RSVP.hashそう...モデルにレコードを追加 - 'モデル' のキーを持つことは悪いアイデアのように思えます。 – sheriffderek

+0

これは変更されます。しかし、子ルートからの更新時にデータを取得する正しい方法は何でしょうか。 – 3gwebtrain

+0

子供の場合....動的セグメントを埋めるためにURLから頻繁にパラメータが必要です。そしてIDまたはスラッグなどでfindRecord - しかし、あなたがただ一つのことをつかんでいるなら...ここでは、RSVPを使うべきではありません。 – sheriffderek

答えて

1

export default Ember.Route.extend({ 
    model: function(params) { 
    if(this.store.hasRecordForId('card-list', params.id)) 
     return this.store.peekRecord('card-list', params.id); 
    return this.store.findRecord('card-list', params.id); 
    } 
}); 
+0

エラーを受け取っていません。質問の私の更新を見てください – 3gwebtrain

+0

@ 3gwebtrainどのようなエラーがありますか? –

+0

//リフレッシュしようとしています。しかし、エラーをスローする //処理中のエラー:cs2i.balance.balanceEdit EmberデータリクエストGET/api/card-list/4196074912005007が404 – 3gwebtrain

1

あなたは、クエリまたはfindRecordかのfindAllなどでレコードをフェッチ親ルートの記録を「覗き見」しなければならない...そう - あなたのデータは「消える」で多くの理由があるかもしれません...

でない場合は、何かの子供のルートにはがありません...そのpeekRecordは何もありません 'peek' ...だから、レコードを確認するか、モデル名 ') - 親ルートから... - そうすれば、コードのコンテキストに関する詳細情報を提供する必要があります。

// imports whatevers... 
model(parameters) { 
    return this.store.findRecord('thing', parameter.id); 
} 

か....

model() { 
    var x = this.modelFor('parentModel'); 
    // do something with x... query... find etc... 
} 
+0

私は子供のルートからのみデータを取得しようとしています。 Ebrahim suggesionのように、私はエラーを起こしてみました。質問 – 3gwebtrain

+0

で更新されました。アプリケーションルートが入力されたことに同意することが重要です。親から子供まで - したがって、モデルは全体のコンテキストに追加されます...しかし、子供が動的なものをどのように知っているかセグメントは通常は問題です。 – sheriffderek

関連する問題