Ember 3 Computed Properties

Никто не упоминает подобное, но даже более простое решение, чем выше, без необходимости иметь дело с пакетом класса. Предполагая, что myfile.properties находится в пути к классам.

        Properties properties = new Properties();
        InputStream in = ClassLoader.getSystemResourceAsStream("myfile.properties");
        properties.load(in);
        in.close();

Наслаждайтесь

0
задан Gemkodor 11 March 2019 в 15:39
поделиться

3 ответа

Я думаю, вам нужно использовать function вместо функции стрелки, потому что с функциями стрелки, this теряется.

с вычисленным function сохраняет this, ссылаясь на экземпляр компонента.

computed('attr1', 'attr2', function() {
   return this.attr1 && this.attr2;
})
0
ответ дан NullVoxPopuli 11 March 2019 в 15:39
поделиться

Вот фрагмент специально для ember-cli 3.4

import Controller from '@ember/controller';
import { computed } from '@ember/object';

export default Controller.extend({
  appName: 'Ember sdfa',

  attr1: 1,
  attr2: 2,
  attr3: 'foo',
  attr4: 'bar',
  attr5: 3,
  attr6: 4,

  totalPrice: computed('attr1', 'attr2',function() {
    let a = this.attr1 ? this.attr1 : 0;
    let b = this.attr2 ? this.attr2 : 0;
    let total = a + b;

    return total;
  }),
});

. Это должно сработать для получения totalPrice, вот тлеблер ember, с которым вы можете поиграть https: // ember- twiddle.com/8801e28a888b469b8057d67a63829808?openFiles=controllers.application.js%2C

Если вы хотите объединить строку вместе, она должна выглядеть следующим образом

  fooBar: computed('attr3', 'attr4', function() {
    let foo = this.attr3 ? this.attr3 : null;
    let bar = this.attr4 ? this.attr4 : null;

    return `${foo} ${bar}`
  }),

, и результат будет be foo bar

Если вы хотите объединить число, пожалуйста, следуйте ниже

combinedNumber: computed('attr5', 'attr6', function() {
    let a = this.attr5 ? this.attr5 : null;
    let b = this.attr6 ? this.attr6 : null;

    return `${a} ${b}`
  }),

, вывод combineNumber равен 3 4

Надеюсь, это поможет. [1114 ]

0
ответ дан Mikelemuel 11 March 2019 в 15:39
поделиться

Приведенный ниже код должен работать нормально.

Если attr1 и attr2 - текст.

import { computed } from '@ember/object';
...
totalPrice: computed('attr1', 'attr2', function() {
  return `${this.attr1} ${this.attr2}`;
})

attr1 и attr2 являются числами.

attr1: 1,
attr2: 2,
totalPrice: computed('attr1', 'attr2', function () {
  return this.attr1 + this.attr2;
  //(or)
  return `${this.attr1 + this.attr2}`;
}),
0
ответ дан rinold simon 11 March 2019 в 15:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: