Ember.js EmberJS:获取和设置用点表示法定义的属性
如果我有一个用点符号定义的属性,我如何在余烬中对它进行@get或@setEmber.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('
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;
}
}
}