2014-07-16 78 views
0

我有在一個點上運行此行代碼:將參數附加到ember數據請求?

var searchData = that.store.find("searchResult",{key: searchKey}); 

從本質上講,我試圖獲取模型信息搜索結果的所有實例。

我的模型代碼如下:

App.SearchResult = DS.Model.extend({ 
    searchResultID: DS.attr('number'), 
    entityID: DS.attr('number'), 
    entityTypeID: DS.attr('number'), 
    entityType: DS.attr('string'), 
    searchText: DS.attr('string'), 

}); 

這是幾乎所有我對於searcHRestult在客戶端。

在服務器端,我處理GET請求到/ searchResults路由。

this.resource('searchResults', {path: '/searchResults'}); 

以上內容已添加到Ember路由器。

然而,我會要求通過這條路徑傳遞一個參數{criteria:「user location」}。這個想法是,在服務器端,我的代碼將搜索此條件參數,然後根據需要的條件運行sql。 (即如果標準=「用戶位置」,則代碼將運行與「用戶」和「位置」相關的SQL)。

但是,在服務器端,當我檢查request.params的值時,該值顯示爲[]。

所以,當我做的:

var searchData = that.store.find("searchResult",{criteria: "user location"}); 

的標準參數從不顯示服務器端。即使我在這裏發佈的第一行代碼,searchKey從不顯示服務器端。

我在這裏錯過了什麼嗎?我必須做任何事情來啓用參數傳遞到服務器端嗎?

(我正在使用node.js作爲服務器)。

回答

0

道歉,經過一小時的測試,似乎該參數被傳遞,並且它可以被訪問。我的測試代碼不幸被放置。

所以,正確的做法是肯定還是:

that.store.find("searchResult",{key: value}) 

,其中「關鍵」是要傳遞的參數,和值是要傳遞給服務器端的該參數的值。

你將不得不通過

request.query.key 
訪問這些PARAMS
相關問題