2
如何將外部值傳遞到控制器。在下面的代碼中,我想將值filtertype
和filterterm
從PostsController
傳遞到PostsDynamicController
。什麼是做到這一點的方法?如何將參數傳遞給控制器init方法?
我有這樣
<script type="text/x-handlebars" id="posts">
{{view Ember.Select
contentBinding="App.names.content"
valueBinding="App.names.selected"
}}
{{view Ember.TextField valueBinding="filterterm" }}
<button {{action "submit"}} > Submit</button>
{{outlet}}
</script>
我App.js的部分模板是這樣的:
App.PostsController = Ember.ObjectController.extend({
content: [],
filterterm: "",
submit: function() {
var filtertype = App.names.selected;
var filterterm = this.get('filterterm');
this.transitionToRoute("posts.dynamicfinder");
}
});
App.PostsDynamicController = Ember.ObjectController.extend({
init: function() {
//want access to filtertype and filterterm here so that I can pass them in find. i.e.
//App.Request.find(filtertype: filterterm);
this.set('model', App.Request.find(..);
}
});
如果'term'和'type'設置在那個末尾,那麼我將如何設置模型?在這種情況下,我想將模型設置爲:'.set('model',App.Request.find(type:term))' – Anthony
如果有幫助,我在jsbin上有一個工作示例:http:// jsbin。 com/OcAyoYo/33 /編輯當一個下拉列表被改變,並且文本框的值被輸入並且點擊提交時,我想用'find(term:type)'模型向一個dynamicfinder請求' – Anthony
我不認爲' App.Request.find(type:term)'按照您認爲的方式工作。它返回一個包含商店中每個「App.Request」的實時集合。然後(異步)它使用指定的查詢開始API請求。 API返回的任何對象都會添加到商店中,並出現在實況集合中。聽起來像你想要返回的是一個過濾的集合,所以只顯示匹配指定詞的記錄。 –