私はシンプルな Ember アプリを持っていますが、{{action}} を動作させるのに 5 時間かかりましたが、うまくいきませんでした。考えられることはすべて3回試しましたが、行き詰まりました。私は最小限のルーターを持っています。{{outlet}} にデフォルトで表示される index.handlebars と、価格設定ページへのリンクがあり、クリックすると価格設定ページに遷移します。価格設定ページで、PricingController に対応するメソッドを持つ {{action showMessage}} を含めるようにしました。Chrome の ember-extention を見ると、PricingController が実際にビューに関連付けられていることがわかります。しかし、メソッドが呼び出されることはありません。他に何を試すべきか本当にわかりません。
application.handlebars:
<div class='navbar navbar-inverse navbar-fixed-top'>
<div class='navbar-inner'>
<div class='container'>
<div class='nav-collapse collapse'>
<ul class='nav'>
<li>{{#linkTo 'pricing'}}Prijzen{{/linkTo}}</li>
</ul>
</div>
</div>
</div>
</div>
<div class='container' id='main'>
<div class='content'>
<div class='row'>
<div class='span12'>
<div class='page-header'></div>
{{outlet}}
</div>
</div>
</div>
</div>
App.Router.map(function() {
this.route('pricing');
});
App.ApplicationRoute = Ember.Route.extend({
});
App.PricingRoute = Ember.Route.extend({
});
価格.ハンドルバー:
<h1>some text</h1>
<a href="#" {{action showMessage}} class='btn btn-primary btn-large'>order</a>
<button {{action showMessage}}></button>
App.PricingController = Ember.Controller.extend({
showMessage: function() {
toastr.info('info');
}
});