Quando si tenta di aggiungere una direttiva a un input con un ID dinamico, il metodo di collegamento non si associa correttamente all'oggetto. Dato il seguente jsfiddle o HTML:ID campo modulo angolareJS con una direttiva non funzionante
<div ng-app="myApp" ng-controller="MyCtrl">
<p>Date: <input type="text" id="datepicker-{{id}}" datepicker></p>
</div>
e JS:
var module = angular.module('myApp', []);
module.directive('datepicker', function() {
var linker = function(scope, element, attrs) {
element.datepicker();
}
return {
restrict: 'A',
link: linker
}
});
function MyCtrl($scope) {
$scope.id = 7
}
Quello che vedo sul debugger console è che quando il collegamento viene chiamato sta mostrando l'id letteralmente come "datepicker - {{id }} "e non" datepicker-7 ".
C'è un modo per forzare questo? Un modo migliore per implementare questo?
Aggiornamento: dovrebbe avere chiarito. Il datepicker appare quando si fa clic, ma il clic su una data non funziona. Ottengo l'errore: "non rilevate dati di istanza mancanti per questo datepicker"
L'ID della scheda elemento ispezionare mostra ancora 'datepicker = {{id}}' –
avrebbe dovuto chiarire. Il datepicker viene mostrato quando si fa clic, ma non si fa clic su una data. Questo ancora non funziona. Viene visualizzato l'errore: "Dati di istanza mancanti non rilevati per questo datepicker" – craineum
@DeepankarBajpeyi interessante, l'ID viene mostrato come datepicker-7 per me sei sicuro che il jsfiddle che stai guardando abbia eseguito l'esclusione su di esso? – Brian