Я все еще учусь угловатым, поэтому я хочу написать свои собственные элементы управления, чтобы узнать больше о том, как угловые работы. Я начал с datepicker, так как это контроль, который мне иногда нужен, и который имеет множество встроенных функций, которые никогда не меняются.Угловой .directive templateUrl не запрашивается
Я получил этот дампикер, объявив template
непосредственно в директиве, но когда я захотел переместить шаблон в свой собственный HTML-файл, он начал становиться неудобным.
В соответствии с угловой документацией должно быть возможно указать внешний HTML-файл для шаблона элемента управления, поэтому я попытался сделать это, поскольку элемент управления стал все более развитым.
директива в настоящее время выглядит следующим образом:
angular.module('my.Controls', [])
.directive('myDatepicker', [function() {
return {
restrict: 'AE',
scope: {},
require: 'ngModel',
templateUrl: '/Templates/my/DatePicker.html',
link: function (scope, iElement, iAttrs, ngModelController) {
// Some datepicker functionality
}
}]);
и конечно HTML-файл для тестирования директивы для работы:
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<meta charset="utf-8" />
<script type="text/javascript" src="Scripts/angular/current/angular.min.js"></script>
<script type="text/javascript" src="Scripts/my/Controls.js"></script>
<script type="text/javascript">
var app = angular.module('myApp', ['my.Controls']);
var ctrl = app.controller('myCtrl', ['$scope', function ($scope) {
$scope.Date = new Date(2016, 08, 15);
}]);
</script>
</head>
<body ng-controller="myCtrl">
{{Date}}
<my-datepicker ng-model="Date" />
</body>
</html>
Теперь я могу подтвердить, что .js файлы загружаются и что приложение и контроллер работают. Однако, поскольку я изменил свойство template: '...'
на templateUrl: '...'
, я даже не могу проверить, что угловой даже пытается загрузить файл HTML, поскольку я не вижу никаких запросов, сделанных для него.
Что мне здесь не хватает? Почему угловой даже не пытается загрузить шаблон из URL?
Действительно ли это файл '' my.DatePicker.html'' ?? Кажется, есть точка после «моего» –
Не пытайтесь или не пытаетесь получить шаблон. Ваш адрес неправильный. – Masterakos
Извините, опечатка при редактировании некоторой информации ... это на самом деле '/', но все равно не работает. – Adwaenyth