4

linkTo ヘルパーとアクション ヘルパーをトリガーする既定のイベントを置き換える方法はありますか?

クリックではなく、マウスダウンに反応したい...

インターフェイスの動作を少し速くするためです。

ありがとう

4

1 に答える 1

2

アクション ヘルパー:

答えは公式ガイドにあります:
イベントの種類を指定してください: http://emberjs.com/guides/templates/actions/

<p>
  <button {{action "select" post on="mouseUp"}}>✓&lt;/button>
  {{post.title}}
</p>

利用可能なイベントのリスト: http://emberjs.com/guides/understanding-ember/the-view-layer/#toc_adding-new-events


LinkTo ヘルパー:

のようなオプション{{linkTo}}がないため、このヘルパーはプロパティを定義することで同じ結果をシミュレートできます。on{{action}}eventManager

Ember.Handlebars.registerHelper('linkAction', function (name) {
    var options = [].slice.call(arguments, -1)[0];
    var params = [].slice.call(arguments, 1, -1);

    var hash = options.hash;

    hash.namedRoute = name;
    hash.currentWhen = hash.currentWhen || name;

    hash.parameters = {
        context: this,
        options: options,
        params: params
    };

    var LinkView = Ember.LinkView.extend({
        didInsertElement: function () {
            this.eventManager = Ember.Object.create({});
            this.eventManager.click = function () {
                return false;
            };
            this.eventManager[hash.on] = function (e, v) {
                Ember.LinkView.prototype.click.call(v, e);
            }
        }
    })

    return Ember.Handlebars.helpers.view.call(this, LinkView, options);
});

使い方:

{{#linkAction route on="mouseEnter"}}Text{{/linkAction}}

デモ: http://jsfiddle.net/indream/mKVU8/1/

参考:アクションヘルパー LinkToヘルパー

于 2013-04-20T08:18:09.537 に答える