Asp.net AngularJs-使用外部控制器.js

Asp.net AngularJs-使用外部控制器.js,asp.net,angularjs,Asp.net,Angularjs,刚从Angular开始,试着让它工作 我想在中显示名称,但它显示{{name} ASPX: <html ng-app="myApp"> <head runat="server"> <script src="Assets/Vendor/angularjs-v1.2.28.js"></script> <script src="App/app.js"></script> <script src=

刚从Angular开始,试着让它工作

我想在

中显示名称,但它显示{{name}

ASPX:

<html ng-app="myApp">
<head runat="server">
    <script src="Assets/Vendor/angularjs-v1.2.28.js"></script> 
    <script src="App/app.js"></script>  
    <script src="App/controllers.js"></script>

</head>
<body ng-controller="myCtrl">
<p>{{ name }}</p>
</body>
</html>
var app = angular.module('myApp','myCtrl');
var controller = {};

controller.myCtrl = function ($scope) {
    $scope.name = "abcd";
}
controllers.js:

<html ng-app="myApp">
<head runat="server">
    <script src="Assets/Vendor/angularjs-v1.2.28.js"></script> 
    <script src="App/app.js"></script>  
    <script src="App/controllers.js"></script>

</head>
<body ng-controller="myCtrl">
<p>{{ name }}</p>
</body>
</html>
var app = angular.module('myApp','myCtrl');
var controller = {};

controller.myCtrl = function ($scope) {
    $scope.name = "abcd";
}
编辑:我已更改加载脚本文件的顺序并更新了此查询。
这是我在控制台中看到的错误-未捕获错误:[$injector:modulerr]

您没有正确地设置脚本的顺序。而是将
app.js
放在
controller.js
前面。现在您得到了错误:
var-app未定义

[添加]
此外,您尝试注入的
myCtrl
不是对象。因此,将
var-controller
更改为
var-myCtrl
可能会起作用

最好使用如下所述的内容:

这里有几件事:

1-
myCtrl
不是依赖模块。因此,在定义
myApp
模块时不需要它:

angular.module('myApp',[]);
angular.module('myApp').controller('myCtrl', function($scope) {

    $scope.name = 'abcd';
});
2-脚本顺序,如@Highmastdon所述

3-定义控制器时,可以使用
myApp
模块:

angular.module('myApp',[]);
angular.module('myApp').controller('myCtrl', function($scope) {

    $scope.name = 'abcd';
});

您是否按F12(开放开发人员控制台)查看出了什么问题?您可能会得到
“应用程序”未定义
。我的猜测是颠倒脚本
controller.js
app.js
。就像@hightmastdon说的那样。您将
应用程序
控制器
脚本包含在错误的顺序中。您可以添加
['$scope',函数($scope){}]
以使用缩微功能。我想第3步应该放在app.js中,对吗?如果我想把它放到controllers.js怎么办。那么会是怎样的?@Qwerty否,
app
变量将添加到全局范围。因此,只要在
app.js
@Qwerty no之后加载
controller.js
文件,就应该可以访问它,该文件可以位于
controllers.js
中。当页面获取所有脚本时,它们可以在一个环境中使用。因此,当您在
app.js
之后加载
controllers.js
时,您的应用程序已经被定义。我不建议这样做,因为这样会造成将所有内容放在同一个文件中的习惯,这不符合单一责任原则。在我看来,这也适用于文件及其内容。