[英]Why does referencing object property passed in as attribute in angular directive cause error?
請參閱此plnkr http://plnkr.co/edit/pj4TwkV7icMp4IdyReZP?p=preview正在傳遞對象作為指令的屬性。
<shape type="person" shirt="blue" dta="{name:'SomeName', age:'21', Hobbies:['reading', 'coding', 'camping'] }"></shape>
然后像<h1>Age:{{dta.age}}</h1>
這樣在模板中引用屬性
盡管它正確顯示了屬性值,但也會導致此錯誤$ rootScope:infdig]達到10個$ digest()迭代。 流產! (請參閱plnkr中的控制台)。 我知道錯誤是由於模型“不穩定”而引起的-但是在這種情況下是什么導致不穩定? 值/屬性不變。 在不引起錯誤的情況下獲得相同結果的正確方法是什么?
我認為這個錯誤只是告訴您您在HTML值中創建的時間過長: {name:'SomeName', age:'21', Hobbies:['reading', 'coding', 'camping'] }
。
將模型放置為HTML屬性不是一種好習慣(MVC模式)。
<shape type="person" shirt="blue" dta="{name:'SomeName', age:'21', Hobbies:['reading', 'coding', 'hiking'] }"></shape>
我建議在控制器中創建dta
對象:
$scope.dta = {
name:'SomeName',
age:'21',
Hobbies:['reading', 'coding', 'hiking']
};
並更改shape
元素,例如:
<shape type="person" shirt="blue" dta="dta"></shape>
見演示小提琴
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.