2015-04-18 4 views
0

У меня есть 2 Коллекции (один из которых является стандартной коллекции, а другой является CFS Collection хранить мои загруженные изображения):Как отображать данные из двух разных документов коллекции в пробелах #each Tag?

Products = new Mongo.Collection('products'); 

и

Uploads = new FS.Collection('uploads', { 
    stores: [new FS.Store.FileSystem('uploads', {path: '~/projectUploads'})] 

}); 

Некоторые документы внутри коллекции Продукция имеет поле или ключ/значение пары 'product_main_image', в котором хранится имя файла загруженного файла, который хранится в коллекции Uploads CFS.

На моей странице я поставил помощника:

Template.admin_products.helpers({ 

    products: function(){ 
    console.log('inside helperproduct'); 

    return Products.find(); 
    } 

}); 

и в HTML у меня есть:

{{#each products}} 
    {{product_name}} 
    {{product_main_image}} 
    {{/each}} 

Но вместо реального имени файла, как показано на {{product_main_image}} Я хотел бы, чтобы отобразить загруженный файл, как если бы я обратился к нему, используя этот код:

Uploads.findOne({"original.name":product_main_image}); 

Эта страница, где я отправляю заложите все продукты, используя {{#each products}}, и я также хотел бы отобразить изображение для каждого продукта, который хранится в коллекции CFS Collection.

Возможно ли это? и как я могу это достичь? Спасибо ...

ответ

2

Возможно ли это? Да

как я могу это достичь?

Вы можете использовать контекст this. на Uploads.findOne()

Вот как должен выглядеть HTML.

{{#each products}} 
    {{product_name}} 
    {{product_main_image}} 
    {{#with image}} 
     <img src="{{this.url}}" /> 
    {{/with}} 
{{/each}} 

И изображение помощника.

Template.example.helpers({ 
    image:function(){ 
    Uploads.findOne({"original.name":this.product_main_image}); 
    } 
}) 

Вот быстрый MeteorPad показывает, как можно достичь этого (им с помощью 2 фиктивных коллекциями, но идея тем же)

+0

Спасибо ... что сделали работу ... Я знал, как использовать помощники ... но я не знал, как применять его таким образом ... Большое спасибо :) – preston