1

我有 4 个文件:

  • 索引.html
  • 逻辑.js
  • 控制器.js
  • 主页.html

索引.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>

逻辑.js

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

控制器.js

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

主页.html

{{name}}

homepage.html 正在加载并通过路由正确显示,但是当 homepage.html 加载到 index.html 时,控制器没有被调用。

请帮我解决这个问题。

谢谢

4

2 回答 2

2

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

添加这一行

<div ng-controller = "homepageCtrl"> 

假设它应该在homepage.html

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

此外,将您的控制器名称包装为' logic.js

[编辑]

添加$inject到路由提供者:

myapp.config(["$routeProvider",
function($routeProvider) {
    $routeProvider
        .when("/", {
            templateUrl: 'homepage.html', 
            controller: 'homepageCtrl'
        });
}
]);
于 2013-09-20T10:13:17.180 回答
0

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

$routeProvider
            .when('/',
                {   
                    controller:'homepageCtrl',
                    templateUrl:'homepage.html'             
            });
于 2013-09-20T10:14:43.537 回答