AngularJs - 使用外部controller.js

时间:2015-01-14 09:14:35

标签: asp.net angularjs

刚开始使用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]

2 个答案:

答案 0 :(得分:4)

您没有正确地输入脚本的顺序。而是将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 :(得分:3)

这里几件事:

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

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

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

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

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

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