2017-11-14 4 views
-1

Ich gehe durch ein Tutorial auf Angular. Ich habe versucht, ihrem Dev Guide zu folgen und SO zu suchen, ich bin ein wenig verwirrt mit allen Versionen von Angular.

Ich habe eine kleine App, eine Aufgaben-App, und ich kann nicht den $ Bereich von meiner HomeCtrl angezeigt werden, wenn die App die Home-Vorlage lädt. Wenn ich die Home-Vorlage lade, wird alles außer den Bereichsaufrufen in den geschweiften Klammern {{}} angezeigt.

Hier ist, was ich für meine HomeCtrl.js haben:

blocitoff.controller('HomeCtrl', ['$scope', '$firebaseArray', '$firebaseObject', function HomCtrl ($scope, $firebaseObject, $firebaseArray) {       
    alert("hello"); 
    var ref = firebase.database().ref(); 
    var list = $firebaseArray(ref); 
    $scope.data = $firebaseObject(ref); 
    $scope.hello = "no way bill it worked!";         
}]); 

Hier ist, was ich für meine home.html haben:

<body ng-controller="HomeCtrl"> 
<div> 
    <h2> hello there </h2> 
    <h3> {{2+5}} </h3> 
     I can add: {{ 1 + 2 }}. 

    <p> {{$scope.hello}}</p> 
    <p> {{ hello }} </p> 
</div> 
</body> 

Danke für jede Hilfe oder Tipps.

+0

Sie erhalten Sie einen Fehler (n) erscheinen in der Entwicklerkonsole? Wenn die Information in den geschweiften Klammern nicht angezeigt wird, klingt es so, als ob die Interpolation fehlschlägt ... –

+0

Sie müssen sich die index.html anschauen, wie in Tutorial- und Rest-Dateien wie app.js controller.js allein erläutert help –

+1

Beachten Sie, dass Ihre injizierten Argumente: '$ scope', '$ firebaseArray', '$ fireBaseObject' und in einer anderen Reihenfolge als Ihre tatsächlichen Argumente: $ scope, $ firebaseObject, $ firebaseArray. Außerdem verwenden Sie in Ihrer Vorlage nicht das Wort $ scope. Anstelle von {{$ scope.hello}} verwende einfach {{hallo}} – Intervalia

Antwort

4

Sie können die $scope Kennung in der Ansicht (HTML) nicht verwenden. $scope ist nur innerhalb des JavaScript zugänglich.

Der ganze Punkt von $scope ist, dass Ausdrücke in der Ansicht standardmäßig auf Werte auf dem Bereich beziehen. Also, wenn Sie $scope.hello zugreifen möchten, bezeichnen es als hello, wie Sie bereits tun:

<p> {{ hello }} </p> 

Arbeitsbeispiel:

var blocitoff = angular.module('blocitoff', []); 
 

 
blocitoff.controller('HomeCtrl', ['$scope', function HomCtrl ($scope) {       
 
    $scope.hello = "no way bill it worked!"; 
 
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<body ng-app="blocitoff" ng-controller="HomeCtrl"> 
 
<div> 
 
    <h2> hello there </h2> 
 
    <h3> {{2+5}} </h3> 
 
     I can add: {{ 1 + 2 }}. 
 

 
    <p> {{ hello }} </p> 
 
</div> 
 
</body>

Verwandte Themen