2017-07-04 6 views
0

In meinem Browser wird der Wert der eckigen geschweiften Klammern nicht angezeigt. Es gibt keine Fehler in der Konsole und die Konsole protokolliert den Wert, aber in meinem Browser ist eine leere Seite. Allerdings sollte es "Hallo Welt" in der oberen linken Ecke sagen.Eckige geschweifte Klammern, die nicht in HTML rendern

mein app.js:

(function() { 
     'use strict'; 
     angular.module('testModule', []); 
    }()); 

mein Controller:

(function() { 
     'use strict'; 
     angular 
      .module('testModule') 
      .controller('testController', Controller); 
     Controller.$inject = []; 

     function Controller() { 
      var vm = this;   
      vm.test = "hello World";   
      activate(); 
      function activate() { 
       console.log(vm.test); 
      } 
     } 
    })(); 

mein html:

<body ng-controller="testController"> 
    <div> 
     {{vm.test}} 
    </div> 
</body> 
+0

wie etwa $ Umfang mit? – guilhebl

+0

mit $ Scope ist anscheinend schlechte Syntax und sie erlauben es nicht, wo ich arbeite. Sie richten es so ein und es funktioniert immer, aber aus irgendeinem Grund nicht. –

Antwort

1

Sie müssen diese Zeile neu zu schreiben

<body ng-controller="testController"> 

als

<body ng-controller="testController as vm"> 

Dies liegt daran, dass Sie this in Ihrem Controller verwenden und auf die Scope-Variable mit this nicht direkt durch den Angular-Ausdruck zugreifen können, so dass Sie einen Alias ​​des Controllers erstellen müssen, indem Sie as verwenden. Verwenden Sie dann diesen Alias, um auf die Bereichsvariable zuzugreifen. Wenn Sie

verwenden
`<body ng-controller="testController as ctrl">` 

dann müssen Sie durch Zugriff auf {{ctrl.test}}

+0

Vielen Dank. Ich kann nicht glauben, dass ich das vermisst habe. –

+0

Ja, das hast du verpasst. Ich habe meine Antwort bearbeitet und weitere Erläuterungen hinzugefügt. –

Verwandte Themen