AngularJs - 使用外部 controller.js

AngularJs - Use External controller.js

刚开始使用 Angular 并努力使这项工作成功。

我想在 <p></p> 中显示名称,但它显示的是 {{ 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>

app.js:

var app = angular.module('myApp','myCtrl');

controllers.js:

var controller = {};

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

编辑: 我已经更改了加载脚本文件的顺序并更新了这个查询。 这是我在控制台中看到的错误 - 未捕获错误:[$injector:modulerr]

您没有正确放置脚本的顺序。而是将 app.js 放在 controller.js 前面。现在您收到错误消息:var app is not defined.

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

最好使用此处描述的内容:https://docs.angularjs.org/guide/controller

app.controller('myCtrl', ['$scope', function($scope) {
  $scope.name = "abcd";
}]);

这里有几件事:

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

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

2 - 脚本顺序,如@Highmastdon 所述。

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

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

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