Angularjs路由问题,控制器无法加载

时间:2013-09-20 10:10:51

标签: angularjs angularjs-routing

我有4个文件:

  • 的index.html
  • logic.js
  • controller.js
  • homepage.html

的index.html

<html ng-app="sample">
<head>
<script src="angular.js"></script>
</head>
<body>
<div>
    <div ng-view></div>
</div>    
    <script src="controller.js"></script>
    <script src="logic.js"></script>    
</body>
</html>

logic.js

var myapp = angular.module('sample',[]);
    myapp.config(function($routeProvider)
    {
        $routeProvider
            .when('/',
                {   
                    controller:homepageCtrl,
                    templateUrl:'homepage.html'             
            });
    });

controller.js

function homepageCtrl($scope){
        $scope.name = "ROHIT";}

homepage.html

{{name}}

homepage.html正在加载并通过路线正确显示,但当homepage.html加载到index.html时,此处未调用控制器。

请帮我解决这个问题。

由于

2 个答案:

答案 0 :(得分:2)

您没有在HTML中定义控制器。

添加此行

<div ng-controller = "homepageCtrl"> 

假设它应该在homepage.html

<div ng-controller = "homepageCtrl">
   {{name}}
</div>

此外,请使用' logic.js

打包您的控制器名称

<强> [编辑]

$inject添加到routeProvider:

myapp.config(["$routeProvider",
function($routeProvider) {
    $routeProvider
        .when("/", {
            templateUrl: 'homepage.html', 
            controller: 'homepageCtrl'
        });
}
]);

答案 1 :(得分:0)

控制器名称必须作为字符串传递给$ routeProvider:

$routeProvider
            .when('/',
                {   
                    controller:'homepageCtrl',
                    templateUrl:'homepage.html'             
            });