1

アウトレットとルーティングを備えたsimplaアプリを作成するために、Ember.jsドキュメントの「EmberApplication Architecture」ガイドに従おうとしていますが、何かがいつも私を騒がせています。

emberルーターがコントローラーをビューオブジェクトではなくテンプレートのデータコンテキストとして設定するのはなぜですか?これはすべてを台無しにします。たとえば、URLの変更の結果として、次のテンプレートをレンダリングしてアウトレットにアタッチする必要がある場合:

<script data-template-name="feed_template" type="text/x-handlebars">
    <h1>The feeds<h1>
    {{this}}
    {{#each items}}
      <a href="#" {{action "onClick"}}>test</a>
    {{/each}}
  </script>

テンプレートのデータコンテキストはコントローラーであり、ビューオブジェクトではありません。それでも多少は問題ありませんが、{{action}}の相互作用はどれも機能していないようです。なぜなら、何を推測するか、コンテキストが異なるからです...

だから私は何をしますか?

4

1 に答える 1

1

アクションのコンテキストは、ember-1.0.preリリースの時点でルーターに変更されました。したがって、onClickアクションは、デフォルトでルーターによって処理されます。ビューに変更するには、アクションにターゲットを明示的に設定するか、controller.targetプロパティを設定する必要があります。ビューをアクションのターゲットとして設定するには:

<script data-template-name="feed_template" type="text/x-handlebars">
    <h1>The feeds<h1>
    {{this}}
    {{#each items}}
      <a href="#" {{action onClick target="view"}}>test</a>
    {{/each}}
</script>
于 2012-09-02T20:49:46.880 に答える