3
{{#view tagName="a" href="#"}}
  The Link
{{/view}}

期待されるHTML

<a href="#" class="ember-view" id="emberXXX"> The Link </a>

現実

<a class="ember-view" id="emberXXX"> The Link </a>

href属性が表示されません

また試したhrefBinding="#", href=true

同様の行で、アクションを関連付けたいので、次の失敗を試みました

{{#view tagName="a" href="#" snippet}}
  The Link
{{/view}}

スニペットはどこにありますかaction="showHome", click="showHome", actionBinding="showHome", clickBinding="showHome"(ここでのアクションはルート遷移用です)

それらのどれもうまくいきませんでした、私は私が簡単にできることを知っています

<a href="#" {{action showHome}}>The Link</a>

またはビューを定義する

aView = Ember.View.extend({
  tagName: 'a',
  click: function(){
    this.get('controller').controllers.send('showHome');
  }
})

物事を機能させるために、しかし私はそれをテンプレートの方法で実装する方法に興味がありました

4

1 に答える 1

8

手短に答える(および回避策)

{{#view Ember.Button tagName="a" target="#" action="someAction"}}Link Name{{/view}}

長文で答える:

あなたが簡単にできると言ったとき

<a href="#" {{action showHome}}>The Link</a>

href="#"これが、定義済みのルーティング アクションを使用してを取得する唯一の方法です。しかし、JavaScript アプリケーションの観点からは、ビューを作成/拡張する方がより意味があります。

も試したと言った場合は、バインディングがそのhrefBinding="#"ビュー用であることを理解していることを意味します。したがって、テンプレートの観点からは、タグにダミーリンクを含めることのみ (私が思うに) はサポートされるべきではありません。適切な方法は、ビューを拡張することです。html

AnchorView = Ember.View.extend({
  tagName: 'a',
  attributeBindings: ['href'],
  href: '#' //
});
于 2012-12-28T19:59:30.903 に答える