2016-11-16 186 views
0

我想实现这个例子:https://material.angularjs.org/1.1.1/demo/navBarAngularJS:导航栏

所以我创建了以下index.html

<!DOCTYPE html> <html lang="en"> 
    <head> 
     <meta charset="UTF-8"> 
    </head> 
    <body> 
    <div ng-controller="AppCtrl" ng-cloak="" class="navBardemoBasicUsage" ng-app="MyApp"> 
    <md-content class="md-padding"> 
     <md-nav-bar md-selected-nav-item="currentNavItem" nav-bar-aria-label="navigation links"> 
      <md-nav-item md-nav-click="goto('page1')" name="page1">Page One</md-nav-item> 
      <md-nav-item md-nav-click="goto('page2')" name="page2">Page Two</md-nav-item> 
      <md-nav-item md-nav-click="goto('page3')" name="page3">Page Three</md-nav-item> 
     </md-nav-bar> 
     <div class="ext-content"> 
      External content for `<span>{{currentNavItem}}</span>` 
     </div> 
    </md-content></div> 

    <script src="vendor/angular/angular.min.js"></script> 
    <script src="http://ngmaterial.assets.s3.amazonaws.com/svg-assets-cache.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-animate.min.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-aria.min.js"></script> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-messages.min.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular-route.min.js"></script> 
    <script src="app.js"></script> 
</body> 
</html> 

及以下app.js

(function() { 
    'use strict'; 

    angular.module('MyApp',['ngMaterial', 'ngMessages', 'material.svgAssetsCache']) 
     .controller('AppCtrl', AppCtrl); 

    function AppCtrl($scope) { 
     $scope.currentNavItem = 'page1'; 
    } 
})(); 

我得到这个异常:

Failed to instantiate module MyApp due to: 
Error: [$injector:modulerr] http://errors.angularjs.org/1.5.8/$injector/modulerr?p0=n...) 
    at http://localhost:8000/vendor/angular/angular.min.js:6:412 
    at http://localhost:8000/vendor/angular/angular.min.js:40:222 
    at q (http://localhost:8000/vendor/angular/angular.min.js:7:355) 
    at g (http://localhost:8000/vendor/angular/angular.min.js:39:319) 
    at http://localhost:8000/vendor/angular/angular.min.js:39:488 
    at q (http://localhost:8000/vendor/angular/angular.min.js:7:355) 
    at g (http://localhost:8000/vendor/angular/angular.min.js:39:319) 
    at cb (http://localhost:8000/vendor/angular/angular.min.js:43:336) 
    at c (http://localhost:8000/vendor/angular/angular.min.js:20:390) 
    at Bc (http://localhost:8000/vendor/angular/angular.min.js:21:179 

我做错了什么?

回答

2

你缺少的angular-material.js和CSS参考

 <link rel="stylesheet" href="//rawgit.com/angular/bower-material/master/angular-material.css" /> 
     <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-animate.min.js"></script> 
     <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-aria.min.js"></script> 
     <script src="https://ajax.googleapis.com/ajax/libs/angular_material/0.11.4/angular-material.min.js"></script> 

DEMO

+0

感谢您的回答!不幸的是它不会帮助 –

+0

@Rudziankoŭ它应该确保你也加载了css。这里是一个演示https://plnkr.co/edit/ok14o9?p=preview – Sajeetharan

0

我觉得你应该把你的NG-应用在这个例子中body标签就像

<body ng-app="MyApp"> 

正如文档指出的那样,您不应该将您的应用程序和其他指令放在第Ë相同的标签

https://docs.angularjs.org/api/ng/directive/ngApp

希望它能帮助。

+0

感谢您的回答!不幸的是它没有帮助 –