Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.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
Html 如何在一个页面中定义多应用程序和多控制器?_Html_Angularjs - Fatal编程技术网

Html 如何在一个页面中定义多应用程序和多控制器?

Html 如何在一个页面中定义多应用程序和多控制器?,html,angularjs,Html,Angularjs,我在menu.js中有这样一个菜单控制器: var app = angular.module('Menu', []); app.controller('MenuController', function ($scope) { $scope.items = [ { "id": "1", "menuKey": "brandConfig", "menuName": "配置", "href": "", "subIte

我在menu.js中有这样一个菜单控制器:

var app = angular.module('Menu', []);
app.controller('MenuController', function ($scope) {
$scope.items = [
    {
        "id": "1",
        "menuKey": "brandConfig",
        "menuName": "配置",
        "href": "",
        "subItems": [
            {
                "id": "11",
                "menuName": "服务",
                "menuKey": "ser",
                "href": ""
            }
        ]
    }
]
});
和A.js中的IndexController:

var app = angular.module('Index', ['ngSanitize','']);
app.controller('IndexController', function ($scope, $http) {
});
B.js中的第二个控制器:

var-app=angular.module('Index',['ngSanitize','');
app.controller('SecondController',函数($scope,$http){
});

当我请求页面localhost:8080/A时,它将加载A.js&&menu.js,请求localhost:8080/B时,它将加载B.js&&menu.js

页面包含页眉和页脚,header.html如下所示:

<div class="container-fluid">
<div class="row">
    <div class="col-md-2">
        <ul id="main-nav" class="nav nav-tabs nav-stacked" style=""  ng-app="Index" ng-controller="MenuController">
            <li id="{{$index}}" onclick="handleMenu()" ng-repeat="item in items">
                <a href="#collapse{{item.id}}" class="nav-header collapsed" data-toggle="collapse">
                    <i class="glyphicon glyphicon-cog"></i>
                    {{item.menuName}}
                    <span class="pull-right glyphicon glyphicon-chevron-down"></span>
                </a>
                <ul id="collapse{{item.id}}" class="nav nav-list collapse secondmenu" style="height: 0px;">
                    <li id="subItem.id" ng-repeat="subItem in item.subItems" >
                        <a href="{{subItem.href}}">
                            <i class="glyphicon glyphicon-asterisk"></i>
                            {{subItem.menuName}}
                        </a>
                    </li>
                </ul>
            </li>
        </ul>
    </div>

    <div id="main" class="col-md-10">
        <#setting number_format="#.##" />
        <#setting date_format="yyyy-MM-dd" />
angular.module('modulename').config(function($stateProvider){
$stateProvider.state('menu',
{
   templateUrl: "partials/menu.html",
   url: "/menu",
   controller: "MenuController"
})
$stateProvider.state('view1',
{
   templateUrl: "partials/view1.html",
   url: "/menu",
   controller: "FirstController"
 })
 $stateProvider.state('view2',
 {
    templateUrl: "partials/view2.html",
    url: "/menu",
    controller: "SecondController"
 })
 });

 angular.module('modulename')
   .controller('MenuController', function MenuController($scope){...})
   .controller('FirstController', function FirstController($scope){...})
   .controller('SecondController', function SecondController($scope){...})

A.ftl:

<#include "/WEB-INF/pages/header.html" />
<div ng-app="Index" ng-controller="IndexController" ng-cloak>
<div class="panel panel-default">
</div>

<div class="panel panel-default" ng-cloak>
    <div class="panel-heading">
        <h3 class="panel-title">服务项目审核</h3>
    </div>
    </div>
</div>
<#include "/WEB-INF/pages/frameFooter.html" />

服务项目审核


当我请求A时,它将加载header.html。那么在这种情况下,如何在一个页面中使用两个控制器呢

您应该使用StateProvider,这样您就可以像这样定义您的状态:

<div class="container-fluid">
<div class="row">
    <div class="col-md-2">
        <ul id="main-nav" class="nav nav-tabs nav-stacked" style=""  ng-app="Index" ng-controller="MenuController">
            <li id="{{$index}}" onclick="handleMenu()" ng-repeat="item in items">
                <a href="#collapse{{item.id}}" class="nav-header collapsed" data-toggle="collapse">
                    <i class="glyphicon glyphicon-cog"></i>
                    {{item.menuName}}
                    <span class="pull-right glyphicon glyphicon-chevron-down"></span>
                </a>
                <ul id="collapse{{item.id}}" class="nav nav-list collapse secondmenu" style="height: 0px;">
                    <li id="subItem.id" ng-repeat="subItem in item.subItems" >
                        <a href="{{subItem.href}}">
                            <i class="glyphicon glyphicon-asterisk"></i>
                            {{subItem.menuName}}
                        </a>
                    </li>
                </ul>
            </li>
        </ul>
    </div>

    <div id="main" class="col-md-10">
        <#setting number_format="#.##" />
        <#setting date_format="yyyy-MM-dd" />
angular.module('modulename').config(function($stateProvider){
$stateProvider.state('menu',
{
   templateUrl: "partials/menu.html",
   url: "/menu",
   controller: "MenuController"
})
$stateProvider.state('view1',
{
   templateUrl: "partials/view1.html",
   url: "/menu",
   controller: "FirstController"
 })
 $stateProvider.state('view2',
 {
    templateUrl: "partials/view2.html",
    url: "/menu",
    controller: "SecondController"
 })
 });

 angular.module('modulename')
   .controller('MenuController', function MenuController($scope){...})
   .controller('FirstController', function FirstController($scope){...})
   .controller('SecondController', function SecondController($scope){...})

您应该使用StateProvider,以便可以像这样定义您的状态:

<div class="container-fluid">
<div class="row">
    <div class="col-md-2">
        <ul id="main-nav" class="nav nav-tabs nav-stacked" style=""  ng-app="Index" ng-controller="MenuController">
            <li id="{{$index}}" onclick="handleMenu()" ng-repeat="item in items">
                <a href="#collapse{{item.id}}" class="nav-header collapsed" data-toggle="collapse">
                    <i class="glyphicon glyphicon-cog"></i>
                    {{item.menuName}}
                    <span class="pull-right glyphicon glyphicon-chevron-down"></span>
                </a>
                <ul id="collapse{{item.id}}" class="nav nav-list collapse secondmenu" style="height: 0px;">
                    <li id="subItem.id" ng-repeat="subItem in item.subItems" >
                        <a href="{{subItem.href}}">
                            <i class="glyphicon glyphicon-asterisk"></i>
                            {{subItem.menuName}}
                        </a>
                    </li>
                </ul>
            </li>
        </ul>
    </div>

    <div id="main" class="col-md-10">
        <#setting number_format="#.##" />
        <#setting date_format="yyyy-MM-dd" />
angular.module('modulename').config(function($stateProvider){
$stateProvider.state('menu',
{
   templateUrl: "partials/menu.html",
   url: "/menu",
   controller: "MenuController"
})
$stateProvider.state('view1',
{
   templateUrl: "partials/view1.html",
   url: "/menu",
   controller: "FirstController"
 })
 $stateProvider.state('view2',
 {
    templateUrl: "partials/view2.html",
    url: "/menu",
    controller: "SecondController"
 })
 });

 angular.module('modulename')
   .controller('MenuController', function MenuController($scope){...})
   .controller('FirstController', function FirstController($scope){...})
   .controller('SecondController', function SecondController($scope){...})