【问题标题】:Ember.js contains string helperEmber.js 包含字符串助手
【发布时间】:2022-01-12 03:59:55
【问题描述】:

我在模板文件中寻找类似的东西:

{{#contains 'invalid' item.name}}
  something
{{/contains}}

基本检查字符串是否包含某个单词

不确定辅助函数的外观,但这是一个随机猜测,尽管我认为这不符合上述代码。

import Helper from 'ember-helper';

export function containsHelper([substr, str]) {
 return str.contains(substr)
}

export default Helper.helper(containsHelper);

类似的东西,但我如何在 Ember.js 帮助程序中执行此操作,以便我可以在模板文件中使用它?

谢谢!

【问题讨论】:

    标签: javascript ember.js handlebars.js


    【解决方案1】:

    你猜对了。这将是您的实现:

    // app/helpers/contains.js
    
    import { helper } from '@ember/component/helper';
    
    function contains([substr, str]) {
      return str.contains(substr)
    }
    
    export default helper(contains);
    

    然后在您的模板中:

    {{contains 'invalid' item.name}}
    

    或者说

    {{#if (contains 'invalid' item.name)}}
     your stuff
    {{/if}}
    

    这里是the doc

    【讨论】:

      【解决方案2】:

      除了@Andrey 的回答, 我正在合并https://github.com/glimmerjs/glimmer-vm/pull/1348,它允许您使用“只是普通函数”作为助手(RFC:https://github.com/emberjs/rfcs/pull/756

      你可以安装一个 polyfill:https://github.com/NullVoxPopuli/ember-functions-as-helper-polyfill

      npm install ember-functions-as-helper-polyfill
      

      然后你可以这样做:

      export default class MyComponent extends Component {
        contains = (substr, str) => str.includes(substr);
      }
      
      {{#if (this.contains 'invalid' item.name)}}
        something
      {{/if}}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多