Я пытаюсь расширить TextField Ember с помощью UrlField, чтобы, если кто-то забыл включить http://
, он делает это для них.Ember CLI: custom input helper
Вот мой Вид:
просмотров/вход-url.js
import Ember from 'ember';
export default Ember.TextField.extend({
type: 'url',
didInsertElement: function() {
this._super.apply(this, arguments);
this.formatValue();
},
onValueChange: function() {
this.formatValue();
}.observes('value'),
formatValue: function() {
var pattern = /^https{0,1}:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+/g;
if (pattern.test(this.get('value')))
return;
if (!pattern.test('http://' + this.get('value')))
return;
this.set('value', 'http://' + this.get('value'));
}
});
Если я использую его в шаблоне, как это, она отлично работает:
{{view "input-url" value=url}}
Я предпочитаю используйте специальные помощники вида, поэтому я создал это (следуя руководству внизу этой страницы: http://guides.emberjs.com/v1.11.0/templates/writing-helpers/):
хелперы/вход-url.js
import Ember from 'ember';
import InputUrl from '../views/input-url';
export default Ember.Handlebars.makeBoundHelper(InputUrl);
Теперь пытаюсь сделать это в моем шаблоне не работает:
{{input-url value=url}}
Я также пробовал различные перестановки этого, в том числе и то, что показано в руководство Ember.Handlebars.makeBoundHelper('input-url', InputUrl);
(которое вызывает ошибку), но я не могу заставить мое поле ввода отображаться. Что я делаю не так?