我有一个像这样的自定义 emberjs 字段
App.NameTextField = App.FieldView.extend({
ValidationText: '',
IsValid: function(){
var valText = this.get('ValidationText');
return valText == '';
}.property(),
Regex: null,
DataView: Ember.TextField.extend({
nameValue: function(){
return App.FormContact.get('FirstName');
}.property(),
ValidationMessages: {Req: 'this is required. fill it in.', Invalid: 'invalid name', Valid: ''},
valueBinding: 'nameValue',
Regex: function(){
return this.get('parentView').get('Regex');
}.property(),
IsRequired: function(){
return this.get('parentView').get('IsRequired');
}.property(),
focusOut: function(){
var reg = new RegExp(this.get('Regex'));
var val = this.get('value');
var validMsg = validateName(this.get('IsRequired'), val, reg);
this.get('parentView').set('ValidationText', this.ValidationMessages[validMsg]);
}
})
});
在前端,我像这样分配正则表达式:
<p>{{view Rewards.NameTextField size="50px" label="First Name" Regex="/^[A-Za-z-'.\s]+$/"}}</p>
这是一个问题,因为当我在 DataView 中执行“this.get('Regex')”时,它的计算结果为
//^[A-Za-z-'.\s]+$//
导致我的正则表达式评估不正确。那么我如何动态地将正则表达式值分配给模板中的视图?
提前致谢!