2016-08-23 6 views
-2

EmberJS 2.7 エラーのIDを渡す失敗しましたEmberJS 2.7アサーションは、ネストされたオブジェクト

{{#link-to 'categories.edit' product.category.id}}<a href="">{{product.category.name}}</a>{{/link-to}} 

APP/router.js: は[Iは、これらのルートは定義されている] [モデル内の/各ループ私はこのラインを持っています]。

this.route('products', function() { 
    this.route('new'); 
    this.route('edit', { path: '/:product_id/edit' }); 
    }); 

    this.route('categories', function() { 
    this.route('new'); 
    this.route('edit', { path: '/:category_id/edit' }); 
    }); 

製品の編集時に機能します。しかし、カテゴリを編集しようとすると、上記のエラーがスローされます。

私は「カテゴリ/編集」ルートを削除し、代わりにこのルートを追加する場合:

this.route('category', { path: '/categories/:category_id/edit' }); 

とそれを使用するテンプレートを変更する:

{{#link-to 'category' product.category.id}}<a href="">{{product.category.name}}</a>{{/link-to}} 

そして、それが動作します。なぜこの第2の作品が理解できるのですか? しかし、なぜ最初のものは動作しませんか?

EDIT:

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    name: DS.attr('string'), 
    description: DS.attr('string'), 
    category: DS.belongsTo('category', { async: true }) 
}); 

アプリ/モデル/ category.js:ここでは、モデルが

アプリ/モデル/ product.jsある

固定
import DS from 'ember-data'; 

export default DS.Model.extend({ 
    name: DS.attr('string'), 
    products: DS.hasMany('product') 
}); 
+0

"これは将来の読者を助けるとは思わない方法で解決されました" - 私はそれに全く反対しています。あなたが検索した場合、引用した特定のエラーを見ることができます。多くの原因があります。またEmberJSの新しいユーザーは、そのエラーの原因を特定するのが非常に困難です。私はそれらをすべて読んで、自分のコードで何がエラーになっているのかを調べるためにかなりの時間を費やしました。完全なブロックのコードを間違ったファイルに入れてこのエラーを引き起こすのは、単純なタイプミスではありません。 – rmcsharry

答えて

1

。 findRecordをモデルに置く場所は重要です。カテゴリルートにこのコードがありました。正しいファイルに移動することで問題は解決します。

APP /ルート/ categories.js:

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model(params) { 
     return this.store.findRecord('category', params.category_id); 
    }, 
}); 

解決

APP /ルート/ categories.js:

import Ember from 'ember'; 

export default Ember.Route.extend({ 
}); 

APP /ルート/カテゴリ/編集。 js:

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model(params) { 
     return this.store.findRecord('category', params.category_id); 
    }, 
}); 
関連する問題