"scope"を使ってバインディングを持つディレクティブを作成しました。場合によっては、定数オブジェクトをバインドする必要があります。 HTMLと、例えば:AngularJS:定数オブジェクトをディレクティブにバインドする方法
<div ng-controller="Ctrl">
<greeting person="{firstName: 'Bob', lastName: 'Jones'}"></greeting>
</div>
と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>'
};
});
これは動作しますが、それはまた、JavaScriptエラーが発生します。
Error: 10 $digest() iterations reached. Aborting!
(Fiddle demonstrating the problem)
正しい方法は何エラーを引き起こすことなく定数オブジェクトをバインドするには?
答えをありがとう。残念ながら、私が使用している実際のデータは深くネストされているので、2番目の解決策は不可能です。最初のケースは可能ですが、ディレクティブが定数値とともに使用されるインスタンスが多数あるため(サーバーサイドで生成されているため)、やや乱雑です。 –