2016-12-30 2 views
1

私のassemblefile.jsでカスタムヘルパーを登録しようとしています。ヘルパー自体は、私がそれをアセンブルして不平等なプロジェクトで使用しているので動作します。アセンブルでカスタムハンドヘルドヘルパーを登録する方法0.17.1

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

アセンブルでは、このように試しましたが、うまくいきませんでした。誰もこれを行う方法を知っていますか?

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

カスタムhelper.js:あなたがそれらを登録される、組み立てとヘルパーを登録するための.helper.helpersメソッドを使用できるように

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モジュールの上に構築されていますハンドルバー付き。 This linkにはヘルパーの登録に関する詳細情報があります。

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

関連する問題