Il seguente violino esegue il rendering di 3 colonne di numeri incrementali che rappresentano le direttive con modelli diversi: uno in linea, uno precaricato e uno da un modello esterno. Quando si seleziona il pulsante "aggiungi", le colonne aumentano. La colonna che rappresenta una direttiva con un modello esterno sembra creare un nuovo array quando un pulsante Aggiungi inserisce un nuovo elemento nell'array esistente e quindi genera il seguente errore:La direttiva ripetuta angularjs con modello esterno non viene visualizzata correttamente quando vengono aggiunti nuovi elementi dell'array.
TypeError: Impossibile chiamare il metodo 'insertBefore' di null
Qualche idea su cosa sta succedendo?
http://jsfiddle.net/jwanga/EaRHD/
angular.module('app',[]).controller('controller', function($scope){
$scope.items = [1,2,3,4,5,6,7,8,9];
$scope.add = function(){
$scope.items.push($scope.items[$scope.items.length - 1]+1);
}
}).directive('item1', function(){
return{
restrict:'E',
replace:true,
scope: {
data: '=data'
},
template:'<li>{{data}}</li>'
}
}).directive('item2', function(){
return{
restrict:'E',
replace:true,
scope: {
data: '=data'
},
templateUrl:'item.html'
}
}).directive('item3', function(){
return{
restrict:'E',
replace:true,
scope: {
data: '=data'
},
templateUrl:'https://s3.amazonaws.com/thedigitalself-public/jsfiddle-EaRHD-template.html'
}
});
Sono anche abbastanza curioso! –
Questo ha risolto il problema anche per me. Mi chiedo perché sia anche questo. – Jeppebm