2017-02-26 5 views
2

に見つかりませんでした。このため、ember-cliを使用して新しいアプリケーションを作成し、project Github pageに従ってember-bootstrapをインストールしました。Ember.js:アサーションに失敗しました:「actionTest」という名前のアクションが(myrouteコントローラが生成され)

その後、私は燃えさし-CLIを使用してルート(ember g route myroute)を作成し、以下のコードを書いたしました:

アプリ/路線/ myroute.js

import Ember from 'ember'; 

export default Ember.Route.extend({ 

    actions: { 
    actionTest(value){ 
     console.log('on actionTest:', value); 
    } 
    } 

}); 

アプリ/テンプレート/ myroute.hbsを

{{#bs-button onClick=(action "actionTest")}}Run test action{{/bs-button}} 

しかし、私がアクセスしようとすると、次のエラーがコンソールに表示されます(何もレンダリングされません):

message: "Assertion Failed: An action named 'actionTest' was not found in (generated myroute controller)" 

は続く:たぶん

Uncaught TypeError: Cannot read property 'getAttribute' of undefined 

完全に愚かなエラーが、私は、ドキュメント上のどちらの例では何も見つからなかったしていません。

環境:

エンバー-CLI:

$ ember -v 
ember-cli: 2.10.1 
node: 6.9.2 
os: darwin x64 

クロムコンソール:述べたよう

DEBUG: ------------------------------- 
DEBUG: Ember  : 2.10.2 
DEBUG: Ember Data : 2.11.3 
DEBUG: jQuery  : 3.1.1 
DEBUG: ------------------------------- 

答えて

3

Iは仕様と信じ、イベントのみ、対応するコントローラまたはコンポーネントに送信されます(明示的ではありませんが)the actions documentationにあります。

1つの解決策は、myrouteコントローラを作成することです(または動作をカプセル化するコンポーネントを作成して)アクションを宣言します。

そうでなければ、あなたがember-route-action-helperが含まれており、のようなもので、あなたの行動に達する可能性:

{{#bs-button onClick=(route-action "actionTest")}}Run test action{{/bs-button}} 
+0

Jup。クローズアクションはコントローラをトリガーするだけで、コンテキストアクションはバブルアップします。 – Lux

+0

うん、これは私のためだった。私はルートで定義されたアクションを持っていましたが、アクションがクロージャー( '