2015-05-12 3 views
0

handlebarhelpers.js файлКак зарегистрировать глобальный помощник руля

var $ = require('jquery'), 
Handlebars = require('handlebars'), 
Backbone = require('backbone'); 


module.exports.ifCondhelper = function (Handlebars, options) { 


    Handlebars.registerHelper('ifequal', function(value1, value2, options) { 
     if(value1 === value2) { 
      return options.fn(this); 
     } 
     return options.inverse(this); 
    }); 

} 

Шаблон

{{#ifCondhelper.ifequal type ../../notificationMessage.SkuMappingNotAvailableMessageP1}} 
<li notid="{{id}}"><a href="#">{{../../../notificationMessage.SkuMappingNotAvailableMessageP1}}: Something Something {{../../../notificationMessage.SkuMappingNotAvailableMessageP2}}: Something Something</a> </li> 
{{/ifCondhelper.ifequal}} 

Я использую Browserify и Backbone как я доступ помощника во всем мире в browserify? Пожалуйста, помогите

+0

Мне кажется, как если бы вы удалили и повторно отправил этот вопрос, так как я видел его в середине дня вчера, и теперь, кажется, было предложено лишь 4 часа тому назад. Вы не должны удалять и пересылать свои вопросы в качестве метода привлечения к ним внимания. Если я ошибаюсь в том, что вы сделали, я извиняюсь. –

+0

Нет, мой вопрос был немного другим, прежде чем я нашел решение для него настолько удаленным, что он не должен был этого делать, хотя сожалею об этом. – vini

ответ

1

Вам нужно только объявить его registerHelper, вы на самом деле не может сделать это как отдельный модуль

// helpers.js 

var Handlebars = require('handlebars'); 

Handlebars.registerHelper('ifequal', function(value1, value2, options) { 
    if(value1 === value2) { 
     return options.fn(this); 
    } 
    return options.inverse(this); 
}); 

module.exports = {} // This line not needed, just wanted to show you export nothing 

и теперь в ваших рукоятках компилировать функцию где-то в коде

// Just including this module with require will 
// register the helpers to the Handlebars global object 

require('./helpers.js'); 

// Now the rest of your code 

Handlebars = require('handlebars'); 

var template = Handlebars.compile(...); 
... 
... 

Почти все.

И в шаблоне вы используете его как это:

{{#ifequal type ../../notificationMessage.SkuMappingNotAvailableMessageP1}} 
<li notid="{{id}}"> 
    <a href="#"> 
    {{../../../notificationMessage.SkuMappingNotAvailableMessageP1}}: Something Something {{../../../notificationMessage.SkuMappingNotAvailableMessageP2}}: Something Something</a> 
</li> 
{{/ifequal}} 
+0

По-прежнему есть ошибка Недоступная ошибка: Отсутствует помощник: 'ifequal' – vini

+0

См. Мой обновленный ответ – drinchev

+0

Я использовал то же самое, но получаю ту же ошибку – vini