2016-12-30 15 views
1

В моей сборке file.js Я пытаюсь зарегистрировать пользовательский помощник. Сам помощник работает, так как я использую его в проекте grunt со сборкой.Как зарегистрировать пользовательский помощник handelbars в сборке 0.17.1

assemble: { 
    options: { 
    helpers: ['./src/helper/custom-helper.js' ] 
    } 
} 

В сборке 0.17.1 Я пробовал, как это, но он не работает. Кто-нибудь знает как это сделать?

app.helpers('./src/helper/custom-helper.js'); 

заказ helper.js:

module.exports.register = function (Handlebars, options, params) { 

    Handlebars.registerHelper('section', function(name, options) { 
     if (!this.sections) { 
     this.sections = {}; 
    } 
    this.sections[name] = options.fn(this); 
    return null;; 
    }); 

}; 

ответ

1

assemble построен на вершине templates модуля сейчас, так что вы можете использовать .helper и .helpers методы регистрации хелперы с сборки, которые будут регистрировать их с ручками. This link содержит дополнительную информацию о регистрации помощников.

С помощью использования api templates api вам не нужно обертывать помощников с помощью метода .register в вашем примере. Вы можете просто экспортировать вспомогательную функцию, а затем назвать его при регистрации сборки, как это:

// custom-helper.js 
module.exports = function(name, options) { 
    if (!this.sections) { 
    this.sections = {}; 
    } 
    this.sections[name] = options.fn(this); 
    return null; 
}; 

// register with assemble 
var app = assemble(); 
app.helper('section', require('./custom-helper.js')); 

Вы также можете экспортировать объект с хелперов и зарегистрировать их все сразу, используя .helpers метод:

// my-helpers.js 
module.exports = { 
    foo: function(str) { return 'FOO: ' + str; }, 
    bar: function(str) { return 'BAR: ' + str; }, 
    baz: function(str) { return 'BAZ: ' + str; } 
}; 

// register with assemble 
var app = assemble(); 
app.helpers(require('./my-helpers.js')); 

При регистрации объекта с помощью метода .helpers ключи свойств используются для вспомогательных имен

+0

Большое вам спасибо. Оно работает!!! – Majabee