2013-06-22 73 views
2

this page,我插入我的/client/helpers/handlebars.js文件時,此車把幫手:Meteor.js把手模板邏輯運算符

Handlebars.registerHelper('compare', function (lvalue, operator, rvalue, options) { 

var operators, result; 

if (arguments.length < 3) { 
    throw new Error("Handlerbars Helper 'compare' needs 2 parameters"); 
} 

if (options === undefined) { 
    options = rvalue; 
    rvalue = operator; 
    operator = "==="; 
} 

operators = { 
    '==': function (l, r) { return l == r; }, 
    '===': function (l, r) { return l === r; }, 
    '!=': function (l, r) { return l != r; }, 
    '!==': function (l, r) { return l !== r; }, 
    '<': function (l, r) { return l < r; }, 
    '>': function (l, r) { return l > r; }, 
    '<=': function (l, r) { return l <= r; }, 
    '>=': function (l, r) { return l >= r; }, 
    'typeof': function (l, r) { return typeof l == r; } 
}; 

if (!operators[operator]) { 
    throw new Error("Handlerbars Helper 'compare' doesn't know the operator " + operator); 
} 

result = operators[operator](lvalue, rvalue); 

if (result) { 
    return options.fn(this); 
} else { 
    return options.inverse(this); 
} 

}); 

而且到模板:

{{#compare "Test" "Test"}} 
Default comparison of "===" 
{{/compare}} 

而且在控制檯我總是看到:異常從Deps重新計算:錯誤:Handlerbars助手'比較'需要2個參數

我也試過這個:

{{#compare "Test" "==" "Test"}} 

但是這並沒有幫助。

回答

0

嘗試

{{#compare "Test" "Test" operator="=="}} 
+1

或許代碼段有幾個問題。看看在https://github.com/raix/Meteor-handlebar-helpers的智能包,它也有一些額外的功能,這真的很酷:) – Akshat

+0

好吧,我會看看它。但它非常奇怪的代碼不起作用是不是?或者你嘗試過嗎? – EnchanterIO

+0

我試過你的包裹。它運作良好thx。 – EnchanterIO