AngularJS ng-app声明的问题

时间:2013-09-19 13:00:24

标签: javascript angularjs

我是从Angular开始的,我遇到了一个令我困惑的奇怪问题。

我有简单的html和js,如下所示。如果我将angular.js文件链接添加为BODY中的最后一行(如文档中所建议的那样),则由于某种原因绑定失败。同样,如果我在HEAD中链接自定义javascript文件,则绑定失败。我相信我在这里遗漏了一些非常基本的东西。虽然无法弄清楚:

HTML文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"
>
<html lang="en">
<head>
<title>Angular Binding</title>
<link rel="stylesheet" href="../Foundation/css/foundation.min.css">
<script type="text/javascript" src="../JS/angular.js"></script>
</head>
<body>
<div ng-app="myapp"> 
    <input type="text" ng-model="data.message">
        {{data.message}}
</div>
<script type="text/javascript" src="BasicFilters.js"></script>
</body>
</html>

BASICFILTERS.JS文件

var myapp = angular.module('myapp', [])

2 个答案:

答案 0 :(得分:2)

尝试将您的声明移至html标记:

<html lang="en" ng-app="myapp" xmlns:ng="http://angularjs.org">
<head>[...]

答案 1 :(得分:0)

我有同样的问题,是如此残酷。然后我请工作的开发人员帮忙,当我向他展示这个问题时,它开始工作......

无论如何,他告诉我的一件事是控制器应该在一个与myApp绑定的控制器内,而不是在全局范围内。

所以而不是:

function MyController1($scope) {
    $scope.data = { message: "Hello World" };
}

将它放在.controller中:

myApp.controller('MyController1', ['$scope', function($scope) {
        $scope.data = { message: "Hello World" };
    }
]);

您可以阅读有关此here的更多信息。