2016-07-20 4 views
2

Ich stoße auf ein Problem mit AngularJS 1.50. Die Interpolation funktioniert nach dem folgenden Code nicht mehr.AngularJS uib-typeahead scheint die Interpolation für den Rest der Seite zu unterbrechen

<input type="text" class="form-control" id="search" name="search" 
     placeholder="{{ shouldInterpolateButDoesnt }}" 
     typeahead-on-select="aGreatFunction($item)" 
     ng-model="selectedDog" 
     uib-typeahead="dog.label for dog in dogList | filter:$viewValue" typeahead-min-length="1"/> 

Auf der gerenderte HTML-Seite, wird der Platzhalter durch die {{}} in Takt. Zusätzlich bricht auch die Interpolation nach diesem Punkt.

Wenn ich diese Zeile von der Seite lösche, funktioniert die zukünftige Interpolation wieder.

Ich denke, ich habe das Problem auf uib-typeahead eingegrenzt, denn wenn ich dieses einzelne Attribut aus dem obigen Code lösche, funktioniert die ganze Interpolation.

Ich habe versucht, den Modellwert gemäß diesem Beitrag zu ändern: Model does not persist using uib-typeahead with ng-repeat. Jetzt bin ich wirklich ratlos, wohin ich als nächstes gehen soll.

Konsole führt den folgenden Fehler:

angular.js:13236 TypeError: Cannot read property 'exp' of undefined 
    at watchFnToHumanReadableString (<anonymous>:703:19) 
    at Scope.$delegate.__proto__.$watch (<anonymous>:735:28) 
    at new <anonymous> (http://localhost:9000/assets/lib/angular-ui-bootstrap/ui-bootstrap-tpls.js:6318:19) 
    at Object.invoke (http://localhost:9000/assets/lib/angularjs/angular.js:4604:19) 
    at extend.instance (http://localhost:9000/assets/lib/angularjs/angular.js:9855:34) 
    at nodeLinkFn (http://localhost:9000/assets/lib/angularjs/angular.js:8927:34) 
    at compositeLinkFn (http://localhost:9000/assets/lib/angularjs/angular.js:8226:13) 
    at compositeLinkFn (http://localhost:9000/assets/lib/angularjs/angular.js:8229:13) 
    at nodeLinkFn (http://localhost:9000/assets/lib/angularjs/angular.js:8973:24) 
    at compositeLinkFn (http://localhost:9000/assets/lib/angularjs/angular.js:8226:13) <div class="col-sm-12 col-md-12 main ng-scope" ui-view="content"> 
+0

Was hat 'sollInterpolateButDoesnt'? –

+1

Haben Sie Fehler im Konsolenprotokoll? Ich glaube nicht, dass ich eine Interpolations-Unterbrechung hatte, ohne dass irgendwo ein Fehler ausgelöst wurde. –

+0

@PankajParkar Es spielt keine Rolle, was "sollInterpolateButeDoesnt" hat. Ich habe es in Strings, Funktionsaufrufe, '1 + 1' usw. geändert. Egal, es ist Inhalt, es interpoliert nicht. – Cities

Antwort

0

das Problem gelöst. Nachdem ich alle Kommentare zu meinem ursprünglichen Beitrag gelesen hatte, suchte ich auf der Suche nach der fehlenden exp Eigenschaft nach meinen Controllern.

Es war nicht da.

Ich suchte nach dem Cannot read property 'exp' of undefined Fehler und gefunden this github page. Andere Leute hatten ein ähnliches Problem, und viele sagten, dass das Deaktivieren der Batarang-Erweiterung das Problem löste. Ein Nutzer hat einen Screenshot hochgeladen, in dem er die Schaltfläche Enable in der Chrome-Entwicklerkonsole deaktiviert hat.

Ich habe das versucht, aber es hat nicht funktioniert.

Um das Problem zu lösen, muss man auf chrome://extensions gehen und Batarang von dort deaktivieren.

Dies löst das Problem, ist aber ein wenig unbefriedigend. Ich bin besorgt, dass ein Endbenutzer mit der Batarang-Erweiterung auch eine Seite mit den gewünschten Interpolationen sehen würde.

Verwandte Themen