Я пытаюсь поместить свои маршруты на завод, а затем использовать эти данные для циклического создания маршрутов конфигурации, но это не работает.
Еще одна проблема заключается в том, что даже когда я простов некоторых маршрутах ng-view не отображает содержимое html-файлов?
Код приведен ниже, хотя я не включил View1.html и View2.html, но они могут содержать все для тестирования.
Буду очень признателен за любой совет:)
Спасибо
Дом
main html:
<!DOCTYPE html>
<html>
<head>
<link rel = "stylesheet"
href = "https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link rel="stylesheet" href="app.css">
</head>
<body ng-app="templateApp" layout="column"
ng-controller="controller">
<md-toolbar layout="row">
<md-button class="menu" ng-click="toggleList()">
<i class="material-icons vertical-align-middle">menu</i>
</md-button>
<h3>test template</h3>
<md-button ng-click="toggleRight()">
Filters
</md-button>
</md-toolbar>
<div class="container" layout="row" flex>
<md-sidenav md-is-locked-open="$mdMedia('gt-sm')" class="md-whiteframe-4dp" md-component-id="left">
<md-list>
<md-list-item ng-repeat="p in pages">
<md-button ng-click="selectPage(p)">
<i class="material-icons vertical-align-middle">{{p.icon}}</i>
{{p.name}}
</md-button>
</md-list-item>
</md-list>
</md-sidenav>
<md-content id="content" flex>
<div><a href ="#partial1">Partial 1</a> </div>
<div ng-view></div>
</md-content>
<md-sidenav class="md-sidenav-right md-whiteframe-4dp" md-component-id="right">
<md-button ng-click="close()" class="button">
Close Filters
</md-button>
</md-sidenav>
</div>
<script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-route.js"></script>
<script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-animate.min.js"></script>
<script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-aria.min.js"></script>
<script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular-messages.min.js"></script>
<script src = "https://ajax.googleapis.com/ajax/libs/angular_material/1.0.0/angular-material.min.js"></script>
<script src = "pages.js"></script>
</body>
</html>
page.js:
var templateApp = angular.module('templateApp', ['ngMaterial', 'ngRoute']);
templateApp.factory('pageFactory', function () {
var pages = [
{icon: 'assessment', name: 'Overview', route: '/partial1', template: 'View1.html'},
{icon: 'assignment', name: 'Dashboard', route: '/partial2', template: 'View2.html'}
];
var factory = {};
factory.getPages = function(){
return pages;
}
return factory;
});
templateApp.controller('controller', function($scope, $mdSidenav, pageFactory, $location) {
$scope.toggleList = function () {
$mdSidenav('left').toggle();
};
$scope.toggleRight = function () {
$mdSidenav('right').toggle();
};
$scope.close = function () {
$mdSidenav('right').close();
};
$scope.selectPage = function (page) {
$location.path(page.route);
};
$scope.pages = pageFactory.getPages();
});
templateApp.config(function($routeProvider, pageFactory) {
angular.forEach(pageFactory.getPages(), function(r) {
$routeProvider.when(r.route, {controller: 'controller', template: r.template});
});
});
//templateApp.config(function($routeProvider) {
// $routeProvider
// .when("/partial1", {
// templateUrl : "View1.html"
// })
// .when("/partial2", {
// templateUrl : "View2.html"
// });
//});
app.css:
html, body {
font-family= 'roboto', sans-serif;
font-size:14px;
height:100%;
margin:0px;
padding:0px;
}
.vertical-align-middle {
vertical-align: middle;
}
md-toolbar h3 {
margin: auto;
font-weight:500;
}
md-list-item > button {
width:100%;
text-align:left !important;
}
#content {
padding-left: 40px;
padding-right: 40px;
padding-top: 5px;
}
.button {
position: absolute;
left: 20px;
margin: 0;
}