私はこのようなカスタム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]+$//
私の正規表現が正しく評価されません。では、テンプレートのビューに正規表現値を動的に割り当てるにはどうすればよいですか?
ありがとうございます!