2014-05-16 51 views
0

我試圖給許多外部鏈接添加一個屬性。下面的代碼在Blaze之前工作,它現在只運行一次Template.rendered(但是下面的代碼甚至不會按需要運行一次)。我如何讓Meteor爲許多模板鏈接添加屬性?

那麼什麼是替代方法來添加一個屬性許多鏈接一旦頁面已被渲染或什麼是正確的方式來做到這一點與流星現在呢?順便說一句,我研究了很多東西,包括example app from the author,如果它有答案,我沒有看到它。

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'); 
    }); 
    }); 
}; 

回答

1

有幾種方法可以解決這個問題,它們都不是完美的。值得注意的是,這個問題已經提出,並且很可能通過建議的here的定製事件來解決。

現在,最簡單的方法是將每個需要調整的元素移動到單獨的模板中。因此,而不是:

<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> 
+0

嗯,這是相當令人失望的,因爲我們還需要有Twitter的鏈接添加到文章也需要類似的東西的能力我問了一下。 – JohnAllen

+0

你應該可以通過擴展這種模式來做到這一點。或者您可以等待Blaze更新。 –

相關問題