0

多くの外部リンクに属性を追加しようとしています。以下のコードは Blaze の前に機能し、Template.rendered現在は 1 回しか実行されません (ただし、以下のコードは 1 回でも希望どおりに実行されません)。

では、ページがレンダリングされた後に多くのリンクに属性を追加する別の方法は何ですか、または Meteor でこれを行う正しい方法は何ですか? ところで、著者のこのサンプルアプリを含め、かなりのことを調査しましたが、答えがある場合は表示されませんでした。

Template.layout.rendered = function () {
  console.log('CALLED');                  // runs
  $(document).ready(function () {
    console.log('NOW THIS');              // runs
    $('a.external').each(function () {
      console.log('NOT CALLED');          // doesn't run
      $(this).attr('target', '_blank');
    });
  });
};
4

1 に答える 1

1

この問題に対処するにはいくつかの方法がありますが、どれも完璧ではありません。この問題はすでに提起されており、ここで提案されているカスタム イベントによって解決される可能性が高いことに注意してください。

今のところ、これを行う最も簡単な方法は、調整が必要な各要素を個別のテンプレートに移動することです。したがって、代わりに:

<template name="layout">
  {{#each links}}
    <a class="external" ...>
  {{/each}}
</template>

あなたが持っているでしょう:

<template name="layout">
  {{#each links}}
    {{> layout_externalLink}}
  {{/each}}
</template>

<template name="layout_externalLink">
  <a class="external" ...>
</template>
于 2014-05-16T14:20:37.360 に答える