Я попробовал простую угловую маршрутизацию, но не могу указать, в чем ошибка. 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>

Это моя ошибка,

Ошибка браузера

Заранее спасибо!

0
W. Marko 10 Апр 2016 в 01:01
2
templateUrl должно быть похоже на templateUrl: '/pages/list.html',
 – 
Pankaj Parkar
10 Апр 2016 в 01:03
Просто попробовал, но ошибка все еще возникает
 – 
W. Marko
10 Апр 2016 в 01:04
Можете ли вы поместить это на jsfiddle?
 – 
arman1991
10 Апр 2016 в 01:14

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'
    });
});
0
Community 23 Май 2017 в 14:51
<a data-target="#list">list</a>
<a data-target="#insert">new</a>
0
hahah 8 Сен 2016 в 06:08
Angular herf с # - другое средство.
 – 
hahah
26 Сен 2016 в 12:52

РЕДАКТИРОВАТЬ. Извините, я не видел вашу структуру каталогов. Вы уверены, что каталог страниц доступен для всех? Следует ли переместить каталог страниц в общедоступный каталог?

Старый ответ:

Ошибка говорит, что templateUrl /pages/list.html не существует. Вы должны либо сохранить файл шаблона в файл /pages/list.html, либо добавить встроенный шаблон в тело html следующим образом:

<script type="text/ng-template" id="/pages/list.html">
my template here
</script>
0
carlosdubusm 10 Апр 2016 в 01:45