Написание метода javascript в контроллере или другом месте и вызов его из Handlebars - PullRequest
0 голосов
/ 08 ноября 2019

по какой-то причине, какие бы вспомогательные функции я не писал, они не работают в моих рулях, говоря, что они не являются вспомогательными функциями. Я хочу две вещи:

  1. В любом случае я могу написать функции в контроллере и легко вызывать их из Ember? Если да, можете ли вы дать мне пример или ссылку или некоторую помощь, как я могу это сделать?
  2. Могу ли я назначать переменные и т. Д. В каждом цикле ember, например, если я могу объявить переменную во внешнем каждом цикле и назначить ее ввнутренний каждый цикл, а затем использовать это присвоенное значение после завершения внутреннего цикла
  3. По какой-то причине мой помощник ifCond не работает, он говорит, что если помощник не является помощником, есть ли встроенная функция if для сравнения двух значенийи верните true или false в ember, как две разные строки и т. д.

Любая помощь, пожалуйста - спасибо.

1 Ответ

1 голос
/ 08 ноября 2019

1. В основном нет. Вы должны получить / вычислить свойство для этого.

Так что, если у вас есть это:

class MyComponent extends Component {
  get foo() {
    return 10 + 50;
  }
}

, вы можете написать {{this.foo}}, это покажет 60.

Для классического класса вы должны сделать это:

Component.extend({
  foo: compute(function() {
    return 10 + 50;
  }),
})

2 Нет. Если вы хотите использовать бизнес-логику, сделайте это в вычисляемом свойстве или в методе получения в файле компонентов js.

Итакесли вам нужен список значений и сумма, например, создайте метод получения (или вычисляемое свойство для классического стиля), производящий это общее значение, а затем используйте его в шаблоне.

Постарайтесь сохранить большую часть своей логики вфайл js.

3: используйте ember-truth-helpers

Большинство людей используют ember-truth-helpers. У него есть помощник eq, который позволяет вам делать {{#if (eq this.foo "something")}}.

...