Ich versuche, Ember's TextField mit UrlField zu erweitern, so dass, wenn jemand vergisst, http://
einzuschließen, es für sie tut.Ember CLI: benutzerdefinierte Eingabe-Helper
Hier ist meine Ansicht:
views/Eingabe-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'));
}
});
Wenn ich es in meiner Vorlage wie folgt verwenden, funktioniert es gut:
{{view "input-url" value=url}}
Ich bevorzuge Verwenden Sie benutzerdefinierte Ansicht Helfer, so dass ich dies erstellt (nach der Anleitung am Ende dieser Seite: http://guides.emberjs.com/v1.11.0/templates/writing-helpers/):
Helfer/input-url.js
import Ember from 'ember';
import InputUrl from '../views/input-url';
export default Ember.Handlebars.makeBoundHelper(InputUrl);
versuchen nun, dies in meiner Vorlage zu machen funktioniert nicht:
{{input-url value=url}}
Ich habe auch versucht, verschiedene Permutationen von diesen, einschließlich dessen, was in der gezeigt hat Anleitung Ember.Handlebars.makeBoundHelper('input-url', InputUrl);
(die einen Fehler wirft), aber ich kann nicht scheinen, mein Eingabefeld zu zeigen. Was mache ich falsch?