1

Ember.js の新しいルーティング機能を使用すると、ビューで定義されたプロパティとアクション ハンドラーにそのテンプレートからアクセスできないようです。代わりに、コントローラーのプロパティのみが利用可能で、アプリはルーターでアクション ハンドラーを探します。

問題の例を次に示します: http://jsfiddle.net/InMatrix/wtUML/3/

[マイ プロフィール] ---> [写真] ---> [テスト] をクリックすると、コンソールに次のエラーが表示されます。

root.profile.photos 状態のイベント testButton に応答できませんでした。

App.PhotosView で定義されている次のアクション ハンドラは、イベントでは使用できないようです。

App.PhotosView = Em.View.extend({
    templateName: 'photos',
    testButton: function(){
        alert('test Button');                
    }
});

アクション ハンドラーを関連するビュー クラスに保持する方法はありますか? 何か見逃しましたか?

4

2 に答える 2

3

アクションのデフォルトのコンテキストがルーターに変更されました。ビューでアクションを処理する場合は、次のように指定する必要があります。

<button {{action testButton target="view"}}>test</button>

ここにあなたのフィドルの作業バージョンがあります: http://jsfiddle.net/wtUML/4/

于 2012-08-03T20:04:57.850 に答える
1

@buuda はそれを成功させましたが、詳細を読みたい場合は、アクション ヘルパーの埋め込みドキュメントを参照してください。

https://github.com/emberjs/ember.js/blob/master/packages/ember-handlebars/lib/helpers/action.js

于 2012-08-03T21:12:29.533 に答える