ember.js 如果ember车把的状况

krcsximq  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(191)

我有一个如下的ember helper方法

  1. export default () => {
  2. Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) {
  3. if (params[3]) { //handle case insensitive conditions if 4 param is passed.
  4. params[0] = params[0].toLowerCase();
  5. params[2] = params[2].toLowerCase();
  6. }
  7. let v1 = params[0];
  8. let operator = params[1];
  9. let v2 = params[2];
  10. switch (operator) {
  11. case '==':
  12. return (v1 == v2);
  13. case '!=':
  14. return (v1 != v2);
  15. case '===':
  16. return (v1 === v2);
  17. case '<':
  18. return (v1 < v2);
  19. case '<=':
  20. return (v1 <= v2);
  21. case '>':
  22. return (v1 > v2);
  23. case '>=':
  24. return (v1 >= v2);
  25. case '&&':
  26. return !!(v1 && v2);
  27. case '||':
  28. return !!(v1 || v2);
  29. default:
  30. return false;
  31. }
  32. });
  33. }

我尝试从我的hbs文件调用它,如下所示

  1. {{#if (ifCond 'testing' '===' 'testing' true)}}

但是我得到了以下错误,有人能给我一些建议吗,谢谢。

  1. contacts.hbs:41 Uncaught Error: Module build failed (from ./.webpack/webpack-handlebars.js):
  2. Error: if doesn't match each - 372:59
  3. at validateClose (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:11014:13)
  4. at Object.prepareBlock (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:11125:7)
  5. at Object.anonymous (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:8339:25)
  6. at Parser.parse (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:10142:38)
  7. at parse (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:11271:36)
  8. at preprocess (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:5817:71)
  9. at precompile (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:3949:38)
  10. at Object.precompile (C:\SourceCode\IMS\Development\IMS\IMS.Ember\node_modules\ember-source\dist\ember-template-compiler.js:8119:37)
  11. at Object.module.exports (C:\SourceCode\IMS\Development\IMS\IMS.Ember\.webpack\webpack-handlebars.js:15:29)
  12. at Object.<anonymous> (http://localhost:58799/Ember/dist/templates.js?version=1572992916177.89:22620:7)
mctunoxg

mctunoxg1#

{{#表示法告诉车把在井中期望一个/}},如下所示:

  1. {{#if true}}
  2. do something
  3. {{/if}}

然而,如果您将代码修改为{{if (ifCond 'testing' '===' 'testing' true)}},则您将“内联”使用它。该错误将消失。

相关问题