繁体   English   中英

使用angular.js在单独的文件夹中创建控制器文件

[英]Create controller file in separate folder using angular.js

我需要将控制器页面保留在单独的folder.But中,这向我显示以下错误。

Error: [ng:areq] http://errors.angularjs.org/1.4.6/ng/areq?p0=homecontroller&p1=not%20aNaNunction%2C%20got%20undefined
    at Error (native)

我在下面解释我的代码。

app.js:

var GoFastoApp=angular.module('GofastoHome',['ngRoute']);
GoFastoApp.config(function($routeProvider) {
    $routeProvider
    .when('/',{
        templateUrl : 'view/home.html',
        controller  : 'homecontroller'
    })
    .when('/deptinfo',{
        templateUrl : 'view/info.html',
        controller  : 'infocontroller'
    })
    .when('/TimeTable',{
        templateUrl : 'view/time.html',
        controller  : 'timecontroller'
    })
    .when('/course',{
        templateUrl : 'view/course.html',
        controller  : 'coursecontroller'
    })
    .when('/subject',{
        templateUrl : 'view/subject.html',
        controller  : 'subjectcontroller'
    })
    .when('/hod',{
        templateUrl : 'view/hod.html',
        controller  : 'hodcontroller'
    })
    .when('/faculty',{
        templateUrl : 'view/faculty.html',
        controller  : 'facultycontroller'
    })
})

在上面的代码中,我为不同的模板声明了不同的控制器。所有部分模板将添加到下面的索引页面中。

index.html:

<!DOCTYPE html>
<html lang="en" ng-app="GofastoHome">
<head>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>...:::WELCOME TO Channabasavashwara Institude of Technology:::...</title>

    <!-- PACE LOAD BAR PLUGIN - This creates the subtle load bar effect at the top of the page. -->
    <script src="js/angularjs.js" type="text/javascript"></script>
    <script src="js/angularroute.js" type="text/javascript"></script>
    <script src="controller/app.js" type="text/javascript"></script>
    <!-- GLOBAL STYLES - Include these on every page. -->
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <link href="css/style22.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">
</head>

<body>
<nav class="navbar navbar-default navbar-fixed-top"  style="margin-top:50px">
      <div class="container" style="width:1270px;">
        <div class="navbar-header navbar-brand">
        Computer Science & Engineering
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#about">Dept. info</a></li>
            <li><a href="#contact">Time Table</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Edit <span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="/course">Course</a></li>
                <li><a href="/subject">Subject</a></li>
                <li><a href="/hod">HOD</a></li>
                <li role="separator" class="divider"></li>
                <li class="dropdown-header">Nav header</li>
                <li><a href="/faculty">Faculty</a></li>
                <li><a href="#">One more separated link</a></li>
              </ul>
            </li>
          </ul>
          </div><!--/.nav-collapse -->
      </div>
    </nav>
       <!--main_heading_div-->
        <!--middle_content_details_data-->
        <div class="row" style="padding-top:90px;"  ng-view>


        </div>
        <!--end_middle_content_details_data-->

    </div>
    <!-- /.page-content -->

</div>
</div>
<script src="js/bootstrap.min.js"></script>
    <script type="text/javascript" src="js/jquery.slimscroll.min.js"></script>
    <script src="js/jquery.popupoverlay.js"></script>
    <!--<script src="controller/HomeController.js" type="text/javascript"></script>-->
</body>
</html>

在这里,我需要使用home.html部分模板,我将在单独的文件夹中创建新的homecontroller文件,并将此文件包含在母版页中。在这里,我创建了一个文件( ie-HomeController.js -HomeController.js),如下所示。

HomeController.js:

var homeapp=angular.module('GofastoHome',[]);
homeapp.controller('homecontroller',function($scope){

})

当我包含此文件时,我没有得到任何部分模板,并且当我从母版页中删除此文件链接时( ie-index.html ),上述错误即将到来。请帮助我解决此问题。 我正在使用1.4.6版的angular.js。

要获得对现有模块的引用,您必须不声明依赖项列表! 卸下支架,它应该可以工作。

var homeapp=angular.module('GofastoHome');

始终始终首先包含Angular插件文件,然后包含应用程序app.js ,配置文件(如果有),最后包含所有创建的Angular模块依赖项,例如服务,指令,工厂以及最后的控制器。

app.js

// Angular Module initialization
var goFastoApp=angular.module('GofastoHome',['ngRoute']);

// Config Block
GoFastoApp.config(function($routeProvider) {
    $routeProvider
    .when('/',{
        templateUrl : 'view/home.html',
        controller  : 'homecontroller'
    })
});

home.controller.js

//考虑将此代码添加到控制器的单独文件中

goFastoApp.controller('homecontroller',function($scope){
   $scope.username = "Satya";
})

index.html

<!DOCTYPE html>
<html lang="en" ng-app="GofastoHome">
<head>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>...:::WELCOME TO Channabasavashwara Institude of Technology:::...</title>

    <!-- PACE LOAD BAR PLUGIN - This creates the subtle load bar effect at the top of the page. -->

    <!-- GLOBAL STYLES - Include these on every page. -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="css/style22.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">
</head>

<body>
    <!-- Page Content -->

    <!-- Plugin Files -->
    <script src="js/angularjs.js" type="text/javascript"></script>
    <script src="js/angularroute.js" type="text/javascript"></script>
    <script src="js/bootstrap.min.js"></script>
    <script type="text/javascript" src="js/jquery.slimscroll.min.js"></script>
    <script src="js/jquery.popupoverlay.js"></script>
    <!-- End Plugin Files -->

    <!-- JS Files -->
    <script src="controller/app.js" type="text/javascript"></script>
    <script src="controller/HomeController.js" type="text/javascript"></script>
    <!-- End JS Files -->
</body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM