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

Is it possible to add comparing operation in condition #if in ember JS?

我是 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}}

谢谢

是的,您可以在模板中使用条件。但是,您使用的语法将不起作用,因为 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,其中包含各种此类条件助手,随时可用。

在您的 HBS 文件中,您可以简单地使用以下内容

{{#if (eq slide.type == "image")}}

假设您使用 Ember Truth Helpers