Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 未注册具有此名称的控制器(无法调用该控制器)_Angularjs - Fatal编程技术网

Angularjs 未注册具有此名称的控制器(无法调用该控制器)

Angularjs 未注册具有此名称的控制器(无法调用该控制器),angularjs,Angularjs,我刚开始与AngularJs合作,我被困在这个地方: 我有index.html,里面包括像angular oclazyload和我的application.js文件这样的脚本标记 <html ng-app="mymodule"> <head> <script src="angular.min.js"></script> <script src="ocLazyLoad.min.js"></script>

我刚开始与AngularJs合作,我被困在这个地方:

我有index.html,里面包括像angular oclazyload和我的application.js文件这样的脚本标记

<html ng-app="mymodule">
<head>
    <script src="angular.min.js"></script>
    <script src="ocLazyLoad.min.js"></script>
    <script src="angular-css-injector.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.0/angular-route.min.js"></script>
    <script src="application.js"></script>

</head>

<body>
    <div ng-controller="mycontroller">
            <h1>Sample Page</h1>
            <div ng-include="login"></div>
    </div>


</body>
var mymodule=angular.module("mymodule",["oc.lazyLoad","angular.css.injector"]);
mymodule.controller("mycontroller",function($scope,$ocLazyLoad,cssInjector){

            $ocLazyLoad.load("/task1/login.js");
            cssInjector.add("style.css");
            $scope.login="login.html";
         });
在我的login.js文件中,我将一个控制器定义为logincontroller

<div ng-controller="logincontroller">
        {{title}}
    </div>
login.js文件:

var mymodule=angular.module("mymodule",[]);
 mymodule.controller("logincontroller",function($scope)
  {
  $scope.title="hello World!!!";
  })
在我的login.html中,我调用该控制器,即(logincontroller)


{{title}}

所有文件都在加载,但我发现一个错误,即未注册具有此名称的控制器。

您可能有计时问题。可以在
login.js
之前加载
login.html
?尝试更改
$ocLazyLoad.load(“/task1/login.js”)
中的
$scope.login
。像

$ocLazyLoad.load("/task1/login.js").then(function(){ $scope.login = 'login.html '});
你必须改变这个

var mymodule=angular.module("mymodule",[]);
 mymodule.controller("logincontroller",function($scope)
 {
    $scope.title="hello World!!!";
 })
对此

var mymodule=angular.module("mymodule");
 mymodule.controller("logincontroller",function($scope)
 {
    $scope.title="hello World!!!";
 })

Offtopic,如果你刚开始学习angularjs,建议直接切换到angularjs。这很有效。。thanx alot在过去的几个小时里,我一直在思考这个问题,我知道我必须对(.then function)做点什么,但没能弄明白..thanx alot,伙计