2016-05-18 2 views
0

Если у вас возникли проблемы с Угловым раньше, я смог решить эту проблему. Конечно, будучи новичком, у нас больше проблем!Шаблон AngularJS неправильно загружен

Произошла какая-то попытка поиска этой ошибки, но применение исправлений, которые другие люди пытались, не доказало свою эффективность.

В настоящее время я пытаюсь загрузить часть на страницу показа в Rails, используя AngularJS. EDIT: Я извиняюсь. Я забыл упомянуть, что я намерен загрузить часть из файла в том же каталоге, что и все эти файлы. Текущий дерево каталогов выглядит следующим образом:

Directory containing relevant js files and the timer partial

Я следующий код построен из:

show.html.erb

<timer-info ng-controller = "CountdownController"> 

</timer-info> 

app.js

'use strict'; 

var myApp = angular.module("summoners-universe", ['ngRoute']) 

directives.js

'use strict'; 

myApp.directive("timerInfo", function(){ 
    return { 
    restrict: "E", 
    templateUrl: 'app/assets/javascripts/timer.html' 
    }; 
}); 

controllers.js

'use strict'; 

myApp.controller('CountdownController', 
    ["$scope", "$http", "$routeParams", 
    function($scope, $http, $routeParams){ 
    console.log($routeParams); 
}]); 

В конце концов, этот контроллер будет отображаться таймер обратного отсчета времени, но сейчас, я просто хотел убедиться, что я мог бы получить мои routeParams и все такое.

К сожалению, я ударил со следующей ошибкой при загрузке страницы:

angular.self-208d6d1….js?body=1:11757 GET http://localhost:3000/games/app/assets/javascripts/timer.html 404 (Not Found)(anonymous function) @ angular.self-208d6d1….js?body=1:11757sendReq @ angular.self-208d6d1….js?body=1:11518serverRequest @ angular.self-208d6d1….js?body=1:11228processQueue @ angular.self-208d6d1….js?body=1:15962(anonymous function) @ angular.self-208d6d1….js?body=1:15978Scope.$eval @ angular.self-208d6d1….js?body=1:17230Scope.$digest @ angular.self-208d6d1….js?body=1:17046Scope.$apply @ angular.self-208d6d1….js?body=1:17338bootstrapApply @ angular.self-208d6d1….js?body=1:1750invoke @ angular.self-208d6d1….js?body=1:4666doBootstrap @ angular.self-208d6d1….js?body=1:1748bootstrap @ angular.self-208d6d1….js?body=1:1768angularInit @ angular.self-208d6d1….js?body=1:1653(anonymous function) @ angular.self-208d6d1….js?body=1:30864fire @ jquery.self-4e23968….js?body=1:3188self.fireWith @ jquery.self-4e23968….js?body=1:3318jQuery.extend.ready @ jquery.self-4e23968….js?body=1:3537completed @ jquery.self-4e23968….js?body=1:3553 
angular.self-208d6d1….js?body=1:13551 Error: [$compile:tpload] Failed to load template: app/assets/javascripts/timer.html (HTTP status: 404 Not Found) 
http://errors.angularjs.org/1.5.5/$compile/tpload?p0=app%2Fassets%2Fjavascripts%2Ftimer.html&p1=404&p2=Not%20Found 
    at angular.self-208d6d1….js?body=1:69 
    at handleError (angular.self-208d6d1….js?body=1:18979) 
    at processQueue (angular.self-208d6d1….js?body=1:15962) 
    at angular.self-208d6d1….js?body=1:15978 
    at Scope.$eval (angular.self-208d6d1….js?body=1:17230) 
    at Scope.$digest (angular.self-208d6d1….js?body=1:17046) 
    at Scope.$apply (angular.self-208d6d1….js?body=1:17338) 
    at done (angular.self-208d6d1….js?body=1:11573) 
    at completeRequest (angular.self-208d6d1….js?body=1:11779) 
    at XMLHttpRequest.requestLoaded (angular.self-208d6d1….js?body=1:11712)(anonymous function) @ angular.self-208d6d1….js?body=1:13551(anonymous function) @ angular.self-208d6d1….js?body=1:10226processQueue @ angular.self-208d6d1….js?body=1:15970(anonymous function) @ angular.self-208d6d1….js?body=1:15978Scope.$eval @ angular.self-208d6d1….js?body=1:17230Scope.$digest @ angular.self-208d6d1….js?body=1:17046Scope.$apply @ angular.self-208d6d1….js?body=1:17338done @ angular.self-208d6d1….js?body=1:11573completeRequest @ angular.self-208d6d1….js?body=1:11779requestLoaded @ angular.self-208d6d1….js?body=1:11712XMLHttpRequest.send (async)(anonymous function) @ angular.self-208d6d1….js?body=1:11757sendReq @ angular.self-208d6d1….js?body=1:11518serverRequest @ angular.self-208d6d1….js?body=1:11228processQueue @ angular.self-208d6d1….js?body=1:15962(anonymous function) @ angular.self-208d6d1….js?body=1:15978Scope.$eval @ angular.self-208d6d1….js?body=1:17230Scope.$digest @ angular.self-208d6d1….js?body=1:17046Scope.$apply @ angular.self-208d6d1….js?body=1:17338bootstrapApply @ angular.self-208d6d1….js?body=1:1750invoke @ angular.self-208d6d1….js?body=1:4666doBootstrap @ angular.self-208d6d1….js?body=1:1748bootstrap @ angular.self-208d6d1….js?body=1:1768angularInit @ angular.self-208d6d1….js?body=1:1653(anonymous function) @ angular.self-208d6d1….js?body=1:30864fire @ jquery.self-4e23968….js?body=1:3188self.fireWith @ jquery.self-4e23968….js?body=1:3318jQuery.extend.ready @ jquery.self-4e23968….js?body=1:3537completed @ jquery.self-4e23968….js?body=1:3553 

Я не знаю, почему запрос прибудет делаются к этому URL. Есть предположения? Спасибо!

+0

Пожары из вашей директивы 'timerInfo'. –

+0

Итак, как мне получить templateUrl для визуализации файла timer.html, который находится в том же каталоге, что и файл моих директив? Я обновляю свой OP с соответствующей информацией. –

+0

В templateUrl URL-адрес с префиксом «/» относится к домену, без префикса «/» он будет относиться к главной («index.html») странице или базовому URL-адресу (если вы используете местоположение в режиме html5). Таким образом, это зависит от вашего где ваш index.html, если без html5mode. –

ответ

0

templateUrl из timerInfo должен быть абсолютным, как это:

templateUrl: '/app/assets/javascripts/timer.html'

Таким образом, вы ссылки из корневого каталога до нужного файла.

+0

Нет кубиков.Ошибка только сейчас читается как: http: // localhost: 3000/app/assets/javascripts/timer.html Не удалось загрузить ресурс: сервер ответил статусом 404 (не найдено) –

0

А, я был в состоянии понять это. По-видимому, камень Angular-Rails ищет шаблоны для загрузки в каталоге приложений/шаблонов. Я просто должен был создать этот каталог и разместить там шаблон.

Смежные вопросы