2014-02-18 27 views
1

我传递一个对象到AngularJS指令,像这样:AngularJS无限循环消化

<context-selector 
      is-buy="true" 
      num-to-select="0" 
      init-object="{ads: rule.ads_list, adContainer: rule.container_ad_id, campaign: rule.campaign_id}"> 
     </context-selector> 

,它会导致因为初始化对象的角度无限消化循环。
我想这是因为Angular通过引用来比较对象。 该指令的定义是:

directive('contextSelector', function() { 
     return { 
      restrict: 'E', 
      scope: { 
       vertical: "@", 
       levelsDepth: "@", 
       isBuy: "@", 
       shellsLeft: "=", 
       numToSelect: "@", 
       initObject: "=" // {ads: [1,2], adContainer: 4, campaign: 6} 
      }, 

是否有这个问题的解决方案?

回答

3

后,我做了多一些对谷歌搜索,我想出了这个帖子: https://github.com/angular/angular.js/issues/4054

显然,这是一个众所周知的问题,并固定在角> = 1.2.5

+0

是。我能够重现这个基本的例子http://plnkr.co/edit/3wKmWz?p=preview – wbeange