2014-02-07 37 views
1

我試圖實現一個控制器上的行動,並得到警告:
棄用:直接在控制器實現的操作處理程序有利於動作的處理程序已被棄用上行動反對如何直接在EmberJS控制器上實現動作?

如果我使用Em.ObjectController。創建(),當我點擊我的按鈕時,我得到一個警告,說明必須在延長時間提供操作。但是,如果我使用Em.ObjectController.extend(),當我單擊按鈕時,我收到一條錯誤消息,指出該操作在控制器上不存在。

我創建了一個jsBin查看此

//App.ToolbarController = Ember.ObjectController.create({ 
App.ToolbarController = Ember.ObjectController.extend({ 
    model: { fu: "baar" }, 
    actions: { 
     doSomethingUseful: function(data) { 
      console.log("doing nothing useful..."); 
     } 
    } 
}); 

回答

1

我在未來的拍了一下你的jsBin

首先它更容易調試你的模板,如果你張貼作爲嵌入式腳本標籤代替編譯的句柄函數。

我編了一個bin可以解決您的問題。

我相信你的問題與你用來創建視圖的方法有關。

{{view App.ToolbarView controllerBinding="App.ToolbarController"}} 

我不確定這是否正常工作。

相反,你應該使用render助手

{{ render 'toolbar' }} 

燼這樣將試圖找到工具欄視圖,控制器和模板,將它們連接一起正常。

+0

感謝您的諮詢和答覆! [這篇文章](http://stackoverflow.com/questions/19982257/ember-js-handlebars-render-vs-outlet-vs-partial-vs-view-vs-control)解釋了視圖和渲染之間的區別助手。我一定會混淆幫手。 – Wabbit