Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js EmberJS:获取和设置用点表示法定义的属性_Ember.js - Fatal编程技术网

Ember.js EmberJS:获取和设置用点表示法定义的属性

Ember.js EmberJS:获取和设置用点表示法定义的属性,ember.js,Ember.js,如果我有一个用点符号定义的属性,我如何在余烬中对它进行@get或@set model = DS.Model.extend EmberValidations.Mixin, ... validations: 'user.fullName': presence: message: null initializer: (-> @set 'validations.user.fullName.presence.message', @get('

如果我有一个用点符号定义的属性,我如何在余烬中对它进行@get或@set

model = DS.Model.extend EmberValidations.Mixin,
  ...

  validations:
    'user.fullName':
      presence:
        message: null

  initializer: (->
    @set 'validations.user.fullName.presence.message', @get('i18n').t('validations.fullName.format') # this doesn't work
  ).on('init')
问题是我无法对validations.user.fullName执行@get或@set操作,因为它不知道如何访问该属性。但是由于ember验证的工作方式,我必须这样定义属性,如果我想使用i18n,我必须这样设置它

如果需要,我可以执行
@get('validations')['user.fullName'].presence.message
来获取值,但实际上我需要设置它

我确信一定有办法在属性名中使用点符号来设置它,但我找不到任何地方说明如何设置


有什么需要帮忙的吗?

我从来没有这样做过。关于i18n的支持,我在ember model validator上进行了讨论。但我已经能够通过以下代码(使用a)解决这个问题:

translate(label) {
  return this.get('i18n').t(label).toString();
},

validations: {
 code: {
  'user.fullName': {
    validation(key, value) {
      return !Ember.isEmpty(value);
    }, message(key, value) {
      let translation = value.translate('path.to.required.message.translation');
      return translation;
    }
  }
}