错误:参数'HomeCtrl'不是函数,未定义

时间:2014-07-24 15:23:20

标签: javascript ruby-on-rails angularjs

我收到以下错误:

错误:参数'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>

我在这里做了什么错误。

请帮我解决此问题。

2 个答案:

答案 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所说。