2014-04-07 4 views
2

Meteor의 재사용 가능한 UI 구성 요소는 여전히 로드맵에서 멀리 떨어져 있습니다. 재사용 가능한 구성 요소를 만드는 가장 좋은 커뮤니티 승인 방법은 무엇입니까? Session을 기반으로 한 시스템은 전 세계적으로 보입니다.Meteor 재사용 가능한 구성 요소

한 번에 한 페이지에 2 개의 서로 다른 채팅 채널을 만들고 싶다고합시다. 나는 무엇을해야합니까? 나는 특정 값이 MongoDB에 들어가 채팅 JSON에 추가되었는지는 같은 만들 것

답변

1

당신이 컬렉션을 통해 채팅을하고있는 가정하면 .... 예를 들어, 사용자 test은 채팅 상자에 hello world이라는 메시지를 보냅니다. 내가 보내하려는 JSON, 내 채팅 도우미 일에, 그리고

{name: 'test', message: 'hello world', num: 1}

처럼 보일 것이다 나는 새로운 채팅을 표시하고있어 어디든지,이

UI.registerHelper(getChat, function(n){return Messages.find({num: n});})

같은 get 메소드를 사용하십시오

{{#each getChat 1}} 또는 {{#each getChat 2}} 또는 당신이 얼마나 많은 대화 상자에 따라 무엇이든, 함께 HTML에서 호출 될

.

기본적으로 특정 채팅 상자에 해당하는 값만 반환됩니다.

행운을 비네. 대신 고정 PARAM 값의 동적 뭔가를 사용하려면

+0

감사합니다. – Harry

+0

이 재료는 불꽃에 새롭습니까? – Harry

+0

사실, 아니요. 유일한 진짜 '새로운'것은 구문입니다. 이전에는'Handlebars.registerHelper' 이었지만, 0.8.0에서는'UI.registerHelper'입니다. – mjkaufer

1

,이

// In memory collection for demonstration purpose 
Messages = new Meteor.Collection(null); 

if (Messages.find().count() === 0) { 
    Messages.insert({name: 'test2', num: 1}); 
    Messages.insert({name: 'test5', num: 2}); 
    // [...] Init some test data 
} 

Template.test.helpers({ 
    // you can also use a collection 
    chats: function() { return [{num:1}, {num:2}] }, 
}); 

// Took from Bob's example 
UI.registerHelper('getChat', function(n){ 
    return Messages.find({num: n}); 
}); 

그리고 템플릿이

<template name="test"> 
    {{#each chats}} 
     {{! num refer to a property of 'this'}} 
     {{#each getChat num}} 
      {{name}} <BR /> 
     {{/each}} 
    {{/each}} 
</template> 

당신은 블레이즈 here

에서 사용자 정의 블록 도우미에 대한 자세한 내용을보실 수 있습니다 시도 할 수 있습니다
관련 문제