La proprietà Angular-specific sugli oggetti numerati $$hashKey
può essere utilizzata per un sacco di cose.
Ad esempio Targeting DOM;
<div ng-repeat="obj in objects">
<label for="field-{{obj.$$hashKey}}">
Label
</label>
<input type="text" id="field-{{obj.$$hashKey}}" />
</div>
In alcuni casi strano che sto vivendo ora il $$ prop HashKey non è ancora impostato su un oggetto voglio accedere su anche se si ripete con angolare. C'è un modo per impostare questa proprietà da sé quando si inizializza l'oggetto?
Modifica: La mia ipotesi è che ci sia qualche forma di problema di ordine di esecuzione, che accedo alla proprietà quando Angular deve ancora elaborare la ripetizione. Sto osservando in profondità un oggetto, all'interno di quell'oggetto c'è una matrice con oggetti che si ripetono. È anche su uno di quegli oggetti che ho bisogno di accedere alla proprietà $$hashKey
su.
Semplice esempio;
var MyController = function($scope, Obj)
{
$scope.obj = {
list: [obj, obj, obj, obj]
};
$scope.$watch("obj", function()
{
var lastObj = $scope.obj.list[$scope.obj.list.length - 1];
console.log(lastObj.$$hashKey); // Undefined?
}, true);
$scope.addObj = function()
{
$scope.obj.list.push(new Obj());
};
};
Edit2: jsFiddle http://jsfiddle.net/2sbWp/2/
Si prega di creare un plunker o jsFiddle, è difficile replicare il problema riscontrato – SoluableNonagon
La mia domanda è piuttosto semplice. Replicare il problema richiederà tempo anche per me, perché devo eliminare un sacco di codice specifico dell'azienda che non posso visualizzare pubblicamente. – Rasmus
Sono d'accordo che è semplice, non ti sto chiedendo di pubblicare il codice della compagnia, solo per replicare il problema usando il codice fittizio. – SoluableNonagon