我收到以下错误:
错误:参数'HomeCtrl'不是函数,未定义assertArg @
这就是我的代码:
在main.js中,
var my_app = angular.module("my_app",[]);
var config = function($routeProvider) {
$routeProvider
.otherwise({
templateUrl: 'templates/home.html',
controller: 'HomeCtrl'
});
};
config.$inject = ['$routeProvider'];
my_app.config(config);
HomeCtrl.js中,
my_app.controller("HomeCtrl",['$scope',function($scope){
$scope.hello = "Doe";
}]);
home.html中,
This is the home page using angular.
<br>
<div ng-controller="HomeCtrl">
Value of "hello": {{hello}}
</div>
layouts / application.html.erb中,
<!DOCTYPE html>
<html ng-app="my_app">
<head>
<title>FirstAngularOnRails</title>
<%= stylesheet_link_tag "application", media: "all"%>
<%= javascript_include_tag "application"%>
<%= csrf_meta_tags %>
</head>
<body>
<div ng-view>
<%= yield %>
</div>
</body>
</html>
我在这里做了什么错误。
请帮我解决此问题。
答案 0 :(得分:2)
确保您的页面包含HomeCtrl.js
看起来好像只包含了你的application.js文件。如果您正在使用资产管道,您可以在那里引用它。
答案 1 :(得分:0)
在main.js中,确保您对控制器模块有所了解。
即 HomeCtrl.js 应该具有以下第一行:
var my_app = angular.module('my_app.homeCtrl', []);
这可以让你把以下内容放在 main.js 中,告诉你有关你创建的控制器模块的角度(我包括ngRoute,因为我没有在你上面的代码中看到它):
var my_app = angular.module("my_app",[
"ngRoute",
"my_app.homeCtrl"
]);
另外,请确保在 main.js 文件后加载 HomeCtrl.js 文件,如Shaun所说。