2015-07-12 64 views
3

我在使用templateURL的AngularJS中使用$ routeProvider,我的問題是什麼都沒有發生,什麼也沒有顯示在開發工具(Chrome或Firefox)的控制檯和網絡選項卡上。如果我使用模板它的作品。

貝婁遵循hmtl和js文件。

mainPainelAdmin.html(DIR:視圖/管理/)

<!DOCTYPE html> 
<html ng-app="adminCondominio"> 
    <head> 
     <meta http-equiv="content-type" content="charset=UTF-8"> 
     <title>Condomínio Ilha de Bari - Painel Administrador</title> 

     <!-- Font Awesome CSS available via CDN; version 4.3.0 used here --> 
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css"> 

     <!-- Angular Material CSS now available via Google CDN; version 0.10 used here --> 
     <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/0.10.0/angular-material.min.css"> 

     <!-- Angular Material Dependencies --> 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script> 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-route.min.js"></script> 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-animate.min.js"></script> 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-aria.min.js"></script> 

     <!-- Angular Material Javascript now available via Google CDN; version 0.10 used here --> 
     <script src="https://ajax.googleapis.com/ajax/libs/angular_material/0.10.0/angular-material.min.js"></script> 


     <script type="text/javascript" src="../../js/app.js"></script> 
     <script type="text/javascript" src="../../js/controllers/admin/mainPainelAdmin.js"></script> 
     <script type="text/javascript" src="../../js/controllers/admin/menuPainelAdmin.js"></script> 
     <script type="text/javascript" src="../../js/controllers/admin/mainAdmin.js"></script> 

     <link rel="stylesheet" href="../../css/admin/mainPainelAdmin.css"> 
     <link rel="stylesheet" href="../../css/admin/menuPainelAdmin.css"> 

    </head> 
    <body> 
     <div ng-controller="MainPainelAdminCtrl"> 
      <md-content> 
       <md-toolbar class="md-toolbar-tools"> 
        <md-button class="md-icon-button" aria-label="Settings"> 
         <md-icon class="fa fa-bars fa-lg"></md-icon> 
        </md-button> 
        <h2> 
         <span>Condomínio Ilha de Bari - Administrador</span> 
        </h2> 
        <span flex></span> 
        <md-button class="md-raised md-warn" aria-label="Sair" style="padding-right: 5%" ng-click="logOff()"> 
         <md-icon class="fa fa-sign-out fa-lg" style="color: white; padding-left: 50%"> Sair </md-icon> 
        </md-button> 
       </md-toolbar> 
       <section layout="row" flex ng-controller="MenuPainelAdmin"> 
        <md-sidenav class="md-sidenav-left md-whiteframe-z2" md-component-id="left" md-is-locked-open="true"> 
         <md-list> 
          <md-list-item class="mouseOver" ng-repeat="item in menuItens"> 
           <p class="menuItemBotao {{item.icon}}" ng-click="go(item.ref)"> {{ item.name }} </p> 
          </md-list-item> 
         </md-list> 
        </md-sidenav> 
        <md-content flex layout-padding> 
         <div layout="column" layout-fill layout-align="top center"> 
          <div ng-view></div> 
         </div> 
         <div flex></div> 
        </md-content> 
       </section> 
      </md-content> 
     </div> 
    </body> 
</html> 

app.js(DIR:JS /)

var app = angular.module('adminCondominio',['ngMaterial', 'ngRoute']); 

menuPainelAdmin.js(DIR: js/controllers/admin /)

app.controller('MenuPainelAdmin', function($scope, $location){ 
    $scope.menuItens = [ 
     {name: 'Início', icon:'fa fa-home fa-lg', ref:'home'}, 
     {name: 'Administração', icon:'fa fa-briefcase fa-lg', ref:'admin'}, 
     {name: 'Configurações', icon:'fa fa-cogs fa-lg', ref:'configs'} 
    ]; 

    $scope.go = function (path) { 
     $location.path(path); 
    }; 
}); 

app.config(['$routeProvider', function($routeProvider){ 
    $routeProvider 
     .when('/home', { 
      templateURL: 'inicioAdmin.html', 
      controller: 'MainAdmin' 
     }) 
     .when('/admin', { 
      templateURL: 'administracaoAdmin.html' 
     }) 
     .when('/configs', { 
      templateURL: 'configuracaoAdmin.html' 
     }) 
     .otherwise({ 
      redirectTo: '/home' 
     }); 
}]); 

mainAdmin.js(DIR:JS /控制器/管理/)

app.controller('MainAdmin', function($scope){ 
    $scope.message="testeeeeee" 
}); 

inicioAdmin.html(DIR:查看/管理/)

<h1>{{ message }}</h1> 

我缺少的東西?謝謝。

回答

2

templateURL應templateUrl在你的路由配置。 {templateUrl: 'some/page.html'}

+0

它的工作!感謝@robwormald。 – Oswaldo

1

我相信你需要一個控制器,每個視圖:

$routeProvider 
    .when('/home', { 
     templateURL: 'inicioAdmin.html', 
     controller: 'MainAdmin' 
    }) 
    .when('/admin', { 
     templateURL: 'administracaoAdmin.html', 
     controller: 'AdminController' 
    }) 
    .when('/configs', { 
     templateURL: 'configuracaoAdmin.html' 
     controller: 'ConfigController' 
    }) 
    .otherwise({ 
     redirectTo: '/home' 
    }); 

然後ofcourse創建這些控制器

+0

我剛剛用一個控制器來看看它是否工作。但我已經嘗試過所有創建的控制器。 – Oswaldo

+0

正如我所說,如果我使用模板而不是templateURL,它的工作原理。 – Oswaldo

1

除了RVandersteen的答案,你的路徑也是錯誤的。

你說的inicioAdmin.html是在目錄view/admin/,所以你的路線需要這樣的信息:

.when('/home', { 
    templateURL: '/view/admin/inicioAdmin.html', 
    controller: 'MainAdmin' 
}) 

不要忘了領先/

+0

即使html在同一個目錄中? 我已經改變了templateURL,如你所說,但仍然無法正常工作。 – Oswaldo

+0

我認爲是的。您沒有引用mainPainelAdmin.html中的視圖。你從不知道mainPainelAdmin.html的路由引用它。你可以試試看。無論什麼作品。 –

+0

我試過了,但還是不行。 – Oswaldo