2016-03-21 7 views
1

私はHTMLに通常のアンカータグを持っていますが、それはアクションハンドラに(おそらく複数の)ハンドラにラップされています。Emberの通常のリンクを使用

問題:リンクをクリックすると、それらの操作の1つによって飲み込まれます。

例のテンプレート:

<div {{action 'doSomething'}}> 
    ... 
    <a href="www.google.com" target="_blank">Google</a> 
    ... 
</div> 

ノーアクションでアンカータグをクリックすると、親のアクションハンドラに優先するべきであると感じるが、それはケースではないようです。

私は、デバッグとエンバーのコードのこのビットを見てきた:私は、リンクをクリックすると

ActionHelper.registerAction = function (_ref) { 
    ... 
    var preventDefault = _ref.preventDefault; 
    ... 

    actions.push({ 
    ... 
    handler: function (event) { 
     ... 
     if (preventDefault !== false) { 
     event.preventDefault(); 
     } 
     ... 
    } 
    }) 
} 

常に、それは私がしました

... preventDefaultべきであると考えているようです親の行動を見つけて、preventDefault=falseを追加しようとしましたが、運はありませんでした。

答えて

1

明らかに、これを行うにはアクションを呼び出す必要があります。何あなたができることはこれです:

<a href="newPage.htm" {{action 'emptyAction' preventDefault=false}}>Go</a> 

がここemberjsについての詳細とのリンクです:

https://guides.emberjs.com/v1.13.0/templates/actions/#toc_allowing-default-browser-action

+0

おかげで、それはかなりがらくたはそれではないですよ! :) –

+1

ニースが見つかりました。悲しい、しかし簡単。 –

関連する問題