2016-04-04 19 views
0

Ich bin ein Neuling in Angular, also entschuldige ich mich im Voraus für irgendwelche dummen Fehler. Ich habe ein Textfeld Eingabe durch eine Richtlinie in Angular definiert:Platzhalter funktioniert nicht bei Eingabe von Textfeldern

.directive('textField', function() { 
    return { 
     restrict: 'E', 
     scope: true, 
     require: 'ngModel', 
     template: '{{start}}<span class="text-field-cursor">{{end}}</span>', 
     controller: 'TextFieldController', 
     link: function (scope, elem, attrs, ngModel) { 
      scope.keyboardOptions.limitTo = parseInt(attrs.limitTo); 
      scope.keyboardOptions.caps = _.has(attrs, 'caps'); 

      scope.model = ngModel; 

      elem.bind('click', function() { 
       scope.openKeyboard(); 
      }); 

      elem.on('$destroy', function clickDestroyElement() { 
       elem.unbind(); 
      }); 
     } 
    }; 
}) 

Dann auf meinem HTML, ich

schrieb
<text-field class="text-field" data-t-username focusable request-focus="true" ng-class="{ 'is-focused': (focused || active), 'is-active': active }" ng-model="data.username" placeholder='Enter your username here' limit-to="32"></text-field> 

Allerdings ist der Platzhalter nicht auf der Webseite sichtbar gemacht werden. Was mache ich falsch?

+0

span haben keinen Platzhalter. Sie müssen dafür das Eingabesteuerelement verwenden –

+1

Sie haben ein benutzerdefiniertes Element erstellt, es ist keine Eingabe mehr, daher gibt es kein Platzhalterattribut. Um dies zu tun, könnten Sie es manuell in der Direktive simulieren, und das Element in der Vorlage sollte in/textarea eingegeben werden. – Bettimms

Antwort

1

In Ihrer Anweisung ist die Vorlage keine Eingabe. Der Platzhalter kann also nicht funktionieren.

Sie können Span auf Eingabe oder andere Direktive ändern, die mit Platzhalter arbeiten.

Verwandte Themen