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

时间:2021-10-19 20:16:23

I have 4 files:

我有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 is loading and being displayed correctly by the route but the controller is not being called here when homepage.html is loaded into index.html.

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

Kindly help me out with this.

请帮我解决这个问题。

Thanks

2 个解决方案

#1


2  

You didn't defined controller in HTML.

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

Add this line

添加此行

<div ng-controller = "homepageCtrl"> 

Suppose it should be in homepage.html:

假设它应该在homepage.html中:

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

In addition, wrap your controller name with ' logic.js

此外,使用'logic.js包装控制器名称

[EDIT]

Add $inject to routeProvider:

将$ inject添加到routeProvider:

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

#2


0  

Controller name must be pass to $routeProvider as a string :

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

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

#1


2  

You didn't defined controller in HTML.

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

Add this line

添加此行

<div ng-controller = "homepageCtrl"> 

Suppose it should be in homepage.html:

假设它应该在homepage.html中:

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

In addition, wrap your controller name with ' logic.js

此外,使用'logic.js包装控制器名称

[EDIT]

Add $inject to routeProvider:

将$ inject添加到routeProvider:

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

#2


0  

Controller name must be pass to $routeProvider as a string :

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

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