Estoy buscando algo como esto en el archivo de plantilla:
{{#contains 'invalid' item.name}} something {{/contains}}Básicamente, compruebe si la cadena contiene una determinada palabra
No estoy seguro de cómo se vería la función de ayuda, pero esta es una suposición aleatoria, aunque no creo que esto cumpla con el código anterior.
import Helper from 'ember-helper'; export function containsHelper([substr, str]) { return str.contains(substr) } export default Helper.helper(containsHelper);Algo así, pero ¿cómo lo hago en un asistente de Ember.js para poder usarlo en un archivo de plantilla?
¡Gracias!
Lo has adivinado bastante bien. Esta sería su implementación:
// app/helpers/contains.js import { helper } from '@ember/component/helper'; function contains([substr, str]) { return str.contains(substr) } export default helper(contains);y luego en tu plantilla:
{{contains 'invalid' item.name}}o mejor
{{#if (contains 'invalid' item.name)}} your stuff {{/if}}aquí está el documento
Además de la respuesta de @Andrey, estoy en proceso de fusionar https://github.com/glimmerjs/glimmer-vm/pull/1348 , lo que le permite usar "funciones simples" como ayudantes (RFC: https ://github.com/emberjs/rfcs/pull/756 )
Hay un polyfill que puedes instalar: https://github.com/NullVoxPopuli/ember-functions-as-helper-polyfill
npm install ember-functions-as-helper-polyfilly luego podrías hacer esto:
export default class MyComponent extends Component { contains = (substr, str) => str.includes(substr); } {{#if (this.contains 'invalid' item.name)}} something {{/if}}