Ho creato una direttiva con un'associazione utilizzando "scope". In alcuni casi, voglio associare un oggetto costante. Ad esempio, con HTML:AngularJS: come associare un oggetto costante a una direttiva
<div ng-controller="Ctrl">
<greeting person="{firstName: 'Bob', lastName: 'Jones'}"></greeting>
</div>
e JavaScript:
var app = angular.module('myApp', []);
app.controller("Ctrl", function($scope) {
});
app.directive("greeting", function() {
return {
restrict: "E",
replace: true,
scope: {
person: "="
},
template:
'<p>Hello {{person.firstName}} {{person.lastName}}</p>'
};
});
Anche se questo funziona, ma provoca anche un errore JavaScript:
Error: 10 $digest() iterations reached. Aborting!
(Fiddle demonstrating the problem)
Qual è il modo corretto legare un oggetto costante senza causare l'errore?
Grazie per la risposta. Sfortunatamente, la seconda soluzione non è possibile poiché i dati reali che sto usando sono profondamente annidati. Il primo caso è possibile ma alquanto disordinato poiché ci sono molte istanze della direttiva che vengono utilizzate con valori costanti (vengono generate lato server). –