2012-10-22 24 views
8

Trong thiên thạch Tôi có thể đặt mẫu người giúp đỡ khác nhau như thế này:Meteor thiết lập tổng thể mẫu bối cảnh

Template.story.title = function() { 
    return "title"; 
}; 
<template name="story"> 
    <h3>{{title}}</h3> 
    <p>{{description}}</p> 
</template> 

Mà là tuyệt vời, nhưng nếu tôi có rất nhiều biến tôi sẽ không muốn cài đặt chúng riêng, tôi muốn để chuyển ngữ cảnh tới mẫu chính.

Tôi làm như thế nào?

Template.story.data = function() { 
    return {title:"title", description:"desc"}; 
}; 
<template name="story"> 
    <h3>{{title}}</h3> 
    <p>{{description}}</p> 
</template> 

Điều đó không hiệu quả. THanks

Trả lời

12

Bạn có thể đặt bối cảnh của mẫu khi bạn gọi nó là:

{{> story data}} 

Template.outerTemplate.data = function() { 
    return {title:"title", description:"desc"}; 
} 

Hoặc bạn chỉ có thể sử dụng {{#with}} để thiết lập các mẫu bối cảnh một cách nhanh chóng:

{{#with data}} 
    {{title}} 
{{/with}} 
5

Bạn hoàn toàn đúng cách nhưng không sử dụng biến mẫu theo cách bạn đã xác định. Vì Template.story.data được xác định để trả về một đối tượng, bạn nên sử dụng nó như một đối tượng:

<template name="story"> 
    <h3>{{data.title}}</h3> 
    <p>{{data.description}}</p> 
</template> 

Voilá. Tất nhiên, mỗi biến mẫu có thể chứa nhiều hơn một chuỗi.

+2

Nhờ công trình này nhưng , không nên có một cách để đặt bối cảnh chính? tài liệu thiên thạch nói rằng 'this' là bối cảnh giả định. Nên có một cách để đặt 'this' thay vì' data'. Cảm ơn. – Harry

Các vấn đề liên quan