2017-12-07 3 views
1
更新

:11:36PST 2017年12月7日Ember.jsモデルID配列を返すためのプロパティを計算しましたか?

私がやろうとしているすべての子コンポーネントで使用するモデルで、現在のIDのリストを含む配列を作成し、何とか何かを明らかに不足しているように見えるです。それが関連している場合は、Ember 2.17.0とEmber Data 2.17.0を併用しています。

ルートはfindAllと非常によく似たモデルの配列を返しますが、RESTエンドポイントで動作するように変更されています。私は制御できません。私は、ルートに埋め込まれたコンポーネントで使用するために、モデルからidの配列が必要です。フィードバックに基づいて、私はコントローラルートの両方でこれを実装しようとしました。

コントローラでは、この方法で試しています。

searchIdArrayC: computed('model',() => { 
    return this.get('model').map((record) => record.get('reachId')); 
}) 

です。私はこの方法で試しています。

searchIdArrayR: computed('model',() => { 
    return this.modelFor('reaches').map((record) => record.get('reachId')); 
}); 

私はそれは私にError while computing: searchIdArrayRまたはError while computing: searchIdArrayCを語っているルートとコントローラの両方のために、クロムエンバーインスペクタでそれを見てください。

ちょっと試してみると、私はルートとコントローラの両方をコンソールに送りました。ルートとコントローラの両方で、上記の方法が機能しているので、私は本当に混乱しています。

Ember Inspector

あなたが提供することができるかもしれ任意の助けや指導のために事前にありがとうございます。

答えて

0

ルートファイルでは、modelは機能ですが、対応するコントローラで利用可能なmodelプロパティのように扱っています。

searchIdArrayの計算されたプロパティを対応するコントローラに移動することができれば、それはうまくいくはずです。

+0

[ルートの['modelFor'メソッド](https://emberjs.com/api/ember/2.16/classes/Route/methods/modelFor?anchor=modelFor)を使用している場合は、ルートに保持することもできます。ですから 'this.get( 'model')'の代わりに 'this.modelFor(this.routeName)'になります。 – jelhan

+0

私はこれらの提案を両方とも実装しようとしましたが、私の試みを反映するために質問を更新しました。何かご意見は? – knu2xs

+0

矢印関数 '()=>'の代わりに、単純に 'function(){' ...を使うことができます(https://ember-twiddle.com/bdf60a30440a7b599d60e579e28e1d17?openFiles=controllers.application.js% 2C) – kumkanillam

関連する問題