Поэтому я использую ui-view, чтобы направить меня к частичной.
//route.provider.js
(function() {
'use strict';
angular
.module('app')
.provider('RouteService', RouteService);
RouteService.$inject = ['$stateProvider', '$urlRouterProvider'];
function RouteService ($stateProvider, $urlRouterProvider) {
var service = {};
this.$get = function() { return service; };
this.initialize = function() {
$urlRouterProvider.otherwise('/login');
$stateProvider
.state('home', {
url: '/home',
controller: 'HomeController',
templateUrl: 'home/home.view.html',
controllerAs: 'viewModel'
})
.state('login', {
url: '/login',
controller: 'LoginController',
templateUrl: 'login/login.view.html',
controllerAs: 'viewModel'
})
//TODO Impliment the following partial pages...
.state('gensim', {
url: '/gensim',
templateUrl: 'general-simulation/simulation.view.html',
controller: 'TabsController',
controllerAs: 'tabs'
})
<...more routes...>
}
}
})();
Проблема, с которой я сталкиваюсь, - это когда она
// general-simulation/simulation.view.html
Я бы хотел, чтобы он использовал настраиваемую директиву для вставки большего количества html в страницу. Внутри simulation.view.html у меня есть это.
<div class="container">
<div class="row center">
<div class="col-xs-12">
<h1>General Simulation</h1>
<gs-tabs><h1>TEST!!!!</h1></gs-tabs>
</div>
</div>
</div>
Директива построена в
// tabs.directives.js
(function(){
'use strict';
angular
.module('app')
.directive('gsTabs', gsTabs);
function gsTabs () {
return {
restrict: "E",
templateURL: 'tabs.view.html'
};
}
})();
Наконец, мой tabs.view.html выглядит так.
<h1>YOU HAVE ENTERED TABS PARTIAL</h1>
Когда я перехожу к странице, на которой отображается симуляция. Посмотреть все, что я вижу, это:
Общее моделирование
КОНТРОЛЬНАЯ РАБОТА!!!!
Так что я делаю неправильно здесь. Я проверил для camelCasing, и страница не отображается в сообщениях об ошибках. Любая помощь будет принята с благодарностью!
Обновить:
Я просмотрел сетевые вызовы в инструментах chrome dev. Загружается файл simulation.view.html, но tabs.view.html - нет.
URL-адрес запроса: http://sdc-stagt01/AngularJS/general-simulation/simulation.view.html Метод запроса: код состояния GET: 200 OK Удаленный адрес: 10.19.8.96: 80
Файловая подструктура:
/general-simulation/tabs/tabs.controller.js
/general-simulation/tabs/tabs.directives.js
/general-simulation/tabs/tabs.view.html/general-simulation/simulation.view.html
ставить комментарий как ответ
изменить templateURL
на templateUrl
Таким образом, комментарий антре был большой помощью. Это привело к тому, что хром-разработчик начал выплевывать ошибки.
charlietfl Был на правильном пути с упоминанием моей файловой структуры. Мне нужно было изменить мою директиву так:
templateUrl: 'general-simulation/tabs/tabs.view.html'
Спасибо!
templateUrl: './dashboard.component.html'
, но это работало, когда я добавил родительскую папку: templateUrl: 'app/dashboard.component.html'
, Я использовал руководство по угловой маршрутизации в документации. Знаете ли вы, почему он не будет работать с простой ссылкой на «./name.of.file.html»?
У вас здесь опечатка. templateUrl
не templateURL
function gsTabs () {
return {
restrict: "E",
templateURL: 'tabs.view.html' // change this to templateUrl
};
}
tabs
неng-include
вместо вашей директивы gsTabs и, как сказал @charlietfl, проверьте свой путь к шаблону