ember.js 是否可以在ember JS的条件#if中添加比较操作?

eni9jsuy  于 2022-11-05  发布在  其他
关注(0)|答案(2)|浏览(200)

我是Ember JS的新手,我试着在#if条件中添加比较运算,但是不起作用。是否可以在Ember JS中添加#if条件中的运算?

{{#if (slide.type == "image")}}
        <img alt='' src='{{slide.image_url}}'>
     {{else}}
        <video width="100%" height="100%" playsinline=true autoplay=true muted=true loop=true wrap=true>
          <source src={{slide.image_url}}>
        </video>
      {{/if}}

谢谢

eyh26e7m

eyh26e7m1#

是的,你可以在模板中使用条件语句。但是,你使用的语法将不起作用,因为Ember为模板定义了一个受限制的和严格的语法,以便更好地理解。
Ember公开了helpers来执行模板中类似这样的函数。您可以创建一个新的帮助器来检查两个属性是否相等,如下所示:

// app/helpers/equal.js

import { helper } from '@ember/component/helper';

function equal(args) {
  let [prop1, prop2] = args;
  return prop1 === prop2;
}

export default helper(equal);

和模板中,您可以使用equal帮助器:

{{#if (equal slide.type "image")}}
  <img alt='' src='{{slide.image_url}}'>
{{else}}
  <video width="100%" height="100%" playsinline=true autoplay=true muted=true loop=true wrap=true>
    <source src={{slide.image_url}}>
  </video>
{{/if}}

或者,您可以使用Ember插件,如ember-truth-helpers,它包含各种这样的条件助手,随时可以使用。

wsxa1bj1

wsxa1bj12#

在您的HBS文件中,您可以简单地使用以下
Ember Truth Helpers
假设您使用是Ember Truth Helpers

相关问题