Я попробовал простую угловую маршрутизацию, но не могу указать, в чем ошибка. Chrome просто сообщает мне, что Angular не может скомпилировать шаблон.
По следующей ссылке вы можете увидеть мою структуру каталогов.
- angular.js
var testApp = angular.module('testApp', ['ngRoute']);
testApp.config(function($routeProvider){
$routeProvider.when('/list', {
templateUrl: 'pages/list.html',
controller: 'mainController'
}).when('/insert', {
templateUrl: 'pages/new.html',
controller: 'newController'
});
});
testApp.controller('mainController', function($scope){
$scope.message = 'main';
});
testApp.controller('newController', function($scope){
$scope.message = 'new';
});
--index.html
<!DOCTYPE html>
<html lang="en" ng-app="testApp">
<head>
<meta charset="UTF-8">
<title>Barfly</title>
<script src="/angular/angular.min.js"></script>
<script src="/angular-route/angular-route.min.js"></script>
<script src="/js/angularApp.js"></script>
</head>
<body ng-controller="mainController">
<a href="#list">list</a>
<a href="#insert">new</a>
<div id="main">
<div ng-view></div>
</div>
</body>
</html>
Это моя ошибка,
Заранее спасибо!
3 ответа
Я столкнулся с подобной проблемой: файлы templateUrl
не могут быть загружены (не загружаются все ресурсы). В моем случае это произошло, когда приложение было загружено в браузере на мобильном устройстве. Это было вызвано ограничениями политики безопасности контента (Как работает политика безопасности контента? )
Я получил CSP, чтобы разрешить все ресурсы кроме шаблонов, на которые ссылается templateUrl
. Я также пробовал загружать шаблоны с помощью директивы script
(https: // docs .angularjs.org / api / ng / directive / script), но безрезультатно.
В конце концов я решил встроить шаблоны в сам маршрут, например:
testApp.config(function($routeProvider){
$routeProvider.when('/list', {
template: '<li ng-repeat="etcetera"></li>',
controller: 'mainController'
});
});
<a data-target="#list">list</a>
<a data-target="#insert">new</a>
РЕДАКТИРОВАТЬ. Извините, я не видел вашу структуру каталогов. Вы уверены, что каталог страниц доступен для всех? Следует ли переместить каталог страниц в общедоступный каталог?
Старый ответ:
Ошибка говорит, что templateUrl /pages/list.html не существует. Вы должны либо сохранить файл шаблона в файл /pages/list.html, либо добавить встроенный шаблон в тело html следующим образом:
<script type="text/ng-template" id="/pages/list.html">
my template here
</script>
Похожие вопросы
Связанные вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.
templateUrl
должно быть похоже наtemplateUrl: '/pages/list.html',