如何将TextField扩展为访问Ember.js中的模型

时间:2014-04-22 03:57:30

标签: ember.js

我正在写一篇ember.js中的表格帖子。

  • attr绑定和条件仅支持除表达式之外的布尔值。
  • 行动没有接受争论。

我希望仅在输入获得焦点并且输入有效时才显示错误。

简单来说,我应该专注于焦点和焦点属性。但是有这么多领域,我必须为每个输入写两个动作。

我想写一个可重用的视图来做到这一点,但我不知道如何在视图中更改模型的值。

有人知道吗?

1 个答案:

答案 0 :(得分:1)

Erp.FromFieldView = Ember.TextField.extend({

    attributeBindings: ['type', 'value', 'size', 'pattern', 'name', 'min', 'max',
                      'accept', 'autocomplete', 'autosave', 'formaction',
                      'formenctype', 'formmethod', 'formnovalidate', 'formtarget',
                      'height', 'inputmode', 'list', 'multiple', 'pattern', 'step',
                      'width', 'error', 'regex'],
    name: 'default',

    error: '',

    regex: '^.+$',

    isValid: true,


    valueChanged: function () {
        re = new RegExp(this.get('regex'), 'g');
        this.set('error', !re.test(this.get('value')));
    }.observes('value'),

    focusIn: function (event) {
        this._super(event);
        if (this.get('value') == undefined) {
            this.set('error', true);
        }
    },

    focusOut: function (event) {
        this._super(event);
        this.set('error', false);
    }
});

Ember.Handlebars.helper('form-field', Erp.FromFieldView);