如何注册全局车把助手

How to register a global handlebar helper

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 中全局访问助手?请帮助

你只需要用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

现在在你的代码中某处的 handlebars compile 函数中

// 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}}