2015-07-19 7 views
0

У меня есть этот простой код в моем app.js файле:AngularJS - почему контроллер не работает?

(function(){ 
    var app = angular.module('searchHotels', []); 

    app.controller = ("PlaceController", function(){ 
     this.place = shop; 
    }); 

    var shop = { 
     name: 'supermarket', 
     distance: 100 
    }; 
})(); 

Вот код в index.html файла:

<!doctype.html> 
<html ng-app="searchHotels"> 

<head> 
    <script type="text/javascript" src="angular.min.js"></script> 
    <script type="text/javascript" src="app.js"></script> 
</head> 

<body> 

    <div ng-controller="PlaceController as placeC"> 
     <h3> {{placeC.place.name}} </h3> 
    </div> 

</body> 

</html> 

В выводе мой {{placC.place.name} } выражение не заменяется данными, которые он должен был показать. Он просто выводит «{{placeC.place.name}}« сам. Что мне здесь не хватает? Благодаря!

+0

И вы назначаете 'undefined'' this.place', поскольку переменная 'shop' ... не определена в этой части кода. –

+0

@KrzysztofSafjanowski, nope, на момент вызова функции контроллера - место уже не определено – Grundy

+0

@KrzysztofSafjanowski абсолютно правильно! Просто поставив объект магазина до того, как контроллер сделал все правильно, я забыл, что JS читается только сверху вниз :) –

ответ

5

Определение углового контроллера - вызов метода, а не назначение. Правильный код:

app.controller("PlaceController", function(){ 
    this.place = shop; 
}); 
+0

Я уже чувствую себя глупо. Большое спасибо! –