Die Angular-spezifische Eigenschaft auf aufgezählten Objekte $$hashKey
kann für viele Dinge verwendet werden.
Zum Beispiel DOM-Targeting;
<div ng-repeat="obj in objects">
<label for="field-{{obj.$$hashKey}}">
Label
</label>
<input type="text" id="field-{{obj.$$hashKey}}" />
</div>
In einigen seltsamen Fall, dass ich jetzt erlebt habe die $$ HashKey prop noch nicht auf einem Objekt, das ich darauf zugreifen zu wollen, auf, obwohl es mit kantigem wiederholt wird. Gibt es eine Möglichkeit, diese Eigenschaft beim Initialisieren des Objekts selbst festzulegen?
Edit: Meine Vermutung ist, dass es eine Art von Ausführungsreihenfolge Problem gibt, dass ich auf die Eigenschaft zugreifen, wenn Angular die Wiederholung noch verarbeiten muss. Ich beobachte ein Objekt, in dem sich ein Array mit Objekten befindet, das wiederholt wird. Es ist auch auf einem dieser Objekte, die ich auf die $$hashKey
Eigenschaft zugreifen muss.
Einfaches Beispiel;
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/
erstellen Sie eine Plunker oder jsFiddle, es ist schwierig, das Problem, das Sie erleben – SoluableNonagon
Meine Frage zu replizieren ist ziemlich einfach. Die Replikation des Problems wird auch für mich Zeit brauchen, da ich viele unternehmensspezifische Codes entfernen muss, die ich nicht öffentlich anzeigen kann. – Rasmus
Ich stimme zu, dass es einfach ist, ich fordere Sie nicht auf, Buchungskreis zu buchen, nur um das Problem mit Dummy-Code zu replizieren. – SoluableNonagon