这是我的 html 和 angular js 代码
<html>
<head>
<title></title>
<script src="Scripts/angular.min.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
function DemoController($scope) {
$scope.user = {
dateOfBirth: new Date(1970, 0, 1)
}
}
</script>
</head>
<body>
<div ng-app="demo" ng-controller="DemoController">
Date Of Birth:
<my-datepicker type="text" ng-model="user.dateOfBirth" />
<br>
Current user's date of birth: <span id="dateOfBirthDisplay">{{user.dateOfBirth}}</span>
</div>
</body>
</html>
它不起作用并给出输出
Date Of Birth:
Current user's date of birth: {{user.dateOfBirth}}
但是,如果我从 div 中的 ng-app="demo"
中删除 ="demo"
,它就可以工作...
最佳答案
当你为 ng-app
指令分配一个名称时,你实际上创建了一个具有该名称的模块。在这个模块中,您将必须定义指令、服务、过滤器和配置。
在您的例子中,当您指定名称“demo”时,您创建了一个名为“demo”的模块。函数 DemoController
现在不再是该模块的一部分。
要使用此功能并将模块分配给您的应用程序,您需要使用以下方式定义 Controller :
var app = angular.module("demo", []);
app.controller('DemoController', [function () {
//The body of demo controller
}]);
这样,应用程序就知道哪个模块的 Controller 需要关联到相应 View 的范围。
关于javascript - 在 angular js div 中使用应用程序名称不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17336150/