2015-02-09 199 views
0

我從閱讀AngularJS O'REILLY,我試圖瞭解如何角作品用一個例子,但我可以把它的功能:爲什麼這個簡單的Angular.js例子不起作用?

hello.html的

<html ng-app> 
    <head> 
    <script src="angular.js"></script> 
    <script src="controllers.js"></script> 
    </head> 
    <body> 
    <div ng-controller="HelloController"> 
     <p>{{ greeting.text }}, World</p> 
    </div> 
    </body> 
</html> 

controllers.js內的邏輯:

function HelloController($scope) { 
    $scope.greeting = { text: 'Hello' }; 
} 

但是當我在瀏覽器上顯示hello.html時,我可以看到{{ greeting.text }}, Hello

這裏有什麼問題?

+3

如果您使用的版本1.3+,你不能使用默認的全局函數作爲控制器。你應該檢查你的控制檯的錯誤 – Phil 2015-02-09 22:01:52

+0

可能重複[控制器不是一個函數,得到未定義,而定義控制器全局](http://stackoverflow.com/questions/25111831/controller-not-a-function-got-undefined-而定義控制器 - 全球) – Phil 2015-02-09 22:02:57

回答

1

你從來沒有定義過一個控制器,你只是定義了一個在名稱中碰巧有「控制器」的函數。

嘗試正確初始化應用:

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

myApp.controller('HelloController', ['$scope', function($scope) { 
    $scope.greeting = {text: 'Hello'}; 
}]); 

https://docs.angularjs.org/guide/controller

+1

這不是他的問題,他應該能夠做到這一點,而無需像你一樣定義它。 – 2015-02-09 22:03:40

+1

@YangLi \t不在1.3(默認)。無論如何,這個問題已經得到解答(假設這是實際問題) – Phil 2015-02-09 22:06:29

相關問題