2014-02-18 92 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