我的代码如下所示
angular
.module('main', ['ngRoute'])
.config(['$routeProvider',
($routeProvider) ->
$routeProvider
.when '/',
templateUrl: 'homePage/homePage.html'
controller: 'MainCtrl'
])
angular.module('main').controller('MainCtrl',
['$scope' , ($scope) ->
$scope.test = {}])
浏览器将出现 Error: [ng:areq] Argument 'MainCtrl' is not a function, got Object
.
但是如果我不使用 MainCtrl
中的内联数组依赖注入(inject)并像这样重写:
angular.module('main').controller('MainCtrl',
($scope) ->
$scope.test = {})
然后一切正常。有人对此有想法吗?谢谢!
最佳答案
由于错误消息非常清楚地表明问题不在于 $routeProvider
,您可能需要重组它们。另请注意,配置 block 必须具有功能。
首先创建模块,然后注册 Controller 和配置:
angular
.module('main', ['ngRoute']);
然后使用它或链接起来,即
angular.module("main", ["ngRoute"]).controller("MainCtrl", [
"$scope"
($scope) ->
return $scope.test = {}
]).config [
"$routeProvider"
($routeProvider) -> //Check this
return $routeProvider.when("/",
templateUrl: "homePage/homePage.html"
controller: "MainCtrl"
)
]
否则,按照您拥有的脚本的顺序,您将尝试在应用程序 main
存在之前创建一个 Controller 。
另请注意,您还需要包含 Angular-router 脚本。
<强> Demo
关于javascript - 内联数组注释 DI 与 AngularJS 中的 $routeProvider 不兼容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28036945/