[英]Ember js search nested routes
我正在嘗試在嵌套路線內進行搜索,尤其是共享模型。
這是我的代碼示例
產品和搜索返回一個json
路由器
Market.Router.map ->
@resource 'products'
@resource 'search', { path: "products/search" }
@resource 'product', { path: "products/:product_id" }
我要實現的其余適配器api URL是:
http://api.url:3000 / v1 / products / search?search_terms = “繩子”
我在標題菜單控制器中進行了搜索操作
如何在嵌套路線中查找記錄?
Market.HeaderMenuController = Ember.ArrayController.extend({
searchText: null,
actions: {
searchResults: function(){
this.store.find('product', 'search?search_terms='+this.searchText);
this.store.find('search', { "search_terms":this.searchText });
}
}
});
我收到以下錯誤-
錯誤:斷言失敗:您必須在傳遞給
push
的對象中包含Market.Product的id
未捕獲的錯誤:斷言失敗:錯誤:斷言失敗:您必須在傳遞給
push
的對象中包含Market.Product的id
您看到的錯誤是由this.store.find
方法返回的JSON引起的。 Ember-data希望所有模型對象都具有指定的id
屬性。 如果檢查從API端點返回的JSON,則可能會發現該對象上沒有id
屬性。
確保您要返回的JSON定義了id
屬性(在每個“產品”對象上),並且錯誤應得到解決。
這是我的臨時方法,可能還有更好的解決方案。
為了獲得用於搜索的嵌套資源,您可以執行以下操作。
api端點為
http://api.url:3000 / v1 / products / search?search_terms = “繩子”
我為搜索路由創建了一個自定義適配器
Market.SearchAdapter = Market.ApplicationAdapter.extend(
namespace: "v1/products"
)
用於搜索的自定義復數,並避免使用“搜索”端點
Ember.Inflector.inflector.rules.uncountable['search'] = true;
inflector = Ember.Inflector.inflector;
inflector.irregular('search', 'searches');
現在您可以運行商店查找以進行搜索
this.store.find('search', { 'search_terms': this.searchText });
與上一個端點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.