2013-07-23 50 views
2

我正在爲我的應用使用ember工具。現在我想在this example.添加一個文本字段,以觸發我的控制器進行搜索,就像這是控制器和視圖:如何從其他視圖引用emberJS控制器

的ProductsController:

var ProductsController = Ember.ArrayController.extend({ 
    search: function(query) { 
    console.log(query); 
    } 
}); 

module.exports = ProductsController; 

SearchFieldView:

var SearchFieldView = Ember.TextField.extend({ 
    insertNewline: function() { 
    var query = this.get('value'); 
    App.ProductsController.search(query); 
    } 
}); 
module.exports = SearchFieldView; 

但是,無論何時文本字段正在改變,我得到的錯誤是App.ProductsController沒有方法search。所以我覺得它不是我創造的那個,而是生成的那個。

回答

0

好的,我明白了。 App.ProductsController不是實際控制人的情況,併爲下將所有視圖具有相同的控制器它只是this.get('controller')

var SearchFieldView = Ember.TextField.extend({ 
    insertNewline: function() { 
    var query = this.get('value'); 
    this.get('controller').search(query); 
    } 
}); 
module.exports = SearchFieldView; 
1

您可以使用this.get(「控制器」),以獲得當前控制器實例。或者如果你需要另一個控制器實例,你可以使用this.get('controller')。get('controllers.anothercontroller').. JSBin

希望它有幫助。

相關問題