Javascript 如果余烬车把出现状况
我有一个余烬助手方法,如下所示Javascript 如果余烬车把出现状况,javascript,ember.js,ember-cli,Javascript,Ember.js,Ember Cli,我有一个余烬助手方法,如下所示 export default () => { Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) { if (params[3]) { //handle case insensitive conditions if 4 param is passed. params[0] = params[
export default () => {
Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) {
if (params[3]) { //handle case insensitive conditions if 4 param is passed.
params[0] = params[0].toLowerCase();
params[2] = params[2].toLowerCase();
}
let v1 = params[0];
let operator = params[1];
let v2 = params[2];
switch (operator) {
case '==':
return (v1 == v2);
case '!=':
return (v1 != v2);
case '===':
return (v1 === v2);
case '<':
return (v1 < v2);
case '<=':
return (v1 <= v2);
case '>':
return (v1 > v2);
case '>=':
return (v1 >= v2);
case '&&':
return !!(v1 && v2);
case '||':
return !!(v1 || v2);
default:
return false;
}
});
}
但是我有以下错误,请有人给我一些建议,谢谢
contacts.hbs:41 Uncaught Error: Module build failed (from ./.webpack/webpack-handlebars.js):
Error: if doesn't match each - 372:59
at validateClose (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:11014:13)
at Object.prepareBlock (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:11125:7)
at Object.anonymous (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:8339:25)
at Parser.parse (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:10142:38)
at parse (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:11271:36)
at preprocess (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:5817:71)
at precompile (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:3949:38)
at Object.precompile (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:8119:37)
at Object.module.exports (C:\SourceCode\IMS\Development\IMS\IMS.Ember\.webpack\webpack-handlebars.js:15:29)
at Object.<anonymous> (http://localhost:58799/Ember/dist/templates.js?version=1572992916177.89:22620:7)
contacts.hbs:41未捕获错误:模块构建失败(来自./.webpack/webpack handlebar.js):
错误:如果不匹配-372:59
在validateClose(C:\SourceCode\IMS\Development\IMS\IMS.Ember\node\u modules\Ember-source\dist\Ember-template-compiler.js:11014:13)
在Object.prepareBlock(C:\SourceCode\IMS\Development\IMS\IMS.Ember\node\u modules\Ember source\dist\Ember template compiler.js:11125:7)
在Object.anonymous(C:\SourceCode\IMS\Development\IMS\IMS.Ember\node\u modules\Ember source\dist\Ember template compiler.js:8339:25)
在Parser.parse(C:\SourceCode\IMS\Development\IMS\IMS.Ember\node\u modules\Ember source\dist\Ember template compiler.js:10142:38)
解析时(C:\SourceCode\IMS\Development\IMS\IMS.Ember\node\u modules\Ember source\dist\Ember template compiler.js:11271:36)
预处理时(C:\SourceCode\IMS\Development\IMS\IMS.Ember\node\u modules\Ember source\dist\Ember template compiler.js:5817:71)
在预编译时(C:\SourceCode\IMS\Development\IMS\IMS.Ember\node\u modules\Ember source\dist\Ember template compiler.js:3949:38)
在Object.precompile(C:\SourceCode\IMS\Development\IMS\IMS.Ember\node\u modules\Ember-source\dist\Ember-template-compiler.js:8119:37)
在Object.module.exports(C:\SourceCode\IMS\Development\IMS\IMS.Ember\.webpack\webpack handlebar.js:15:29)
反对。(http://localhost:58799/Ember/dist/templates.js?version=1572992916177.89:22620:7)
符号告诉车把在以下情况下需要一个“`/}}”符号:
{{#if true}}
do something
{{/if}}
但是,如果您将代码修改为
{{if(ifCond'testing'==''testing'true)}
这个错误会消失。看起来你正在尝试重新发明余烬真理助手、余烬数学助手等。正如@Gaurav提到的余烬模板助手插件将优雅地处理这种情况。然而,在余烬中应该是直截了当的。这是你的助手的一个示例实现。是的,我没有注意到,但现在它是“sayingember.debug.js:43618未捕获(承诺中)错误:编译错误:ifCond不是助手”有任何帮助吗?非常感谢。
{{#if true}}
do something
{{/if}}