2016-04-09 2 views
0

Я пробовал простую Угловую Маршрутизацию, но я не могу указать, в чем ошибка. Chrome просто говорит мне, что Angular не может скомпилировать шаблон.

В следующей ссылке вы можете увидеть мою структуру каталогов.

directory-structure

- 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> 

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

Browser Error

Спасибо заранее!

+2

'templateUrl' должен быть как' templateUrl: '/ страниц/list.html', ' –

+0

просто пытался это и ошибка все еще происходит –

+0

Можете ли вы поместить это на jsfiddle? – arman1991

ответ

0

EDIT. К сожалению, я не видел вашу структуру каталогов. Вы уверены, что каталог страниц доступен для общественности? Должен ли каталог страниц перемещаться в общий каталог?

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

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

<script type="text/ng-template" id="/pages/list.html"> 
my template here 
</script> 
0

я встретил своего рода подобной проблемы: templateUrl файлы могут быть не загружен (все ресурсов не было). В моем случае это произошло, когда приложение было загружено в браузере на мобильном устройстве. Это было вызвано контентный ограничениями политики безопасности (How does Content Security Policy work?)

Я получил СНТ, чтобы разрешить всем ресурсам, за исключением для шаблонов, на которые ссылаются 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
<a data-target="#list">list</a> 
<a data-target="#insert">new</a> 
+1

Пожалуйста, также объясните, почему это сработает :) – neohope

+0

Угловое торф с # - другое среднее. – hahah