2013-10-10 34 views
0

看到这个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 $摘要()的迭代为止。中止! (请参阅plnkr中的控制台)。我知道这个错误是在模型“不稳定”时引起的 - 但是在这种情况下导致不稳定的是什么?值/属性不会更改。在不引起错误的情况下达到相同结果的正确方法是什么?

回答

2

这个错误,我想只是告诉你,你创建的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> 

观看演示Fiddle

+0

+1,并感谢您的小提琴快速回复。是的,通过控制器传递对象可以避免错误,但问题的原因似乎不是字符串的长度。我把它缩短到只有年龄属性,它仍然给出了同样的错误。 – Jarnal

相关问题