我知道這個問題已經在這裏被問到,似乎所有的答案是從AngularJS文檔中引用或不提供解決方案(不是解決方案,我反正理解),所以我會再試一次。AngularJS:通過模板多次調用控制器的函數
我對Angular的使用經驗比較新,從一個月前開始,所以請原諒我的無知,如果這是基礎知識。
在文章列表中(使用ng-repeat
迭代)我有一個特殊的「分享到」按鈕。
按鈕上的鏈接(href)取決於三個不同的因素:post_id
,user_id
,network
。
我試圖做到這一點,在我的ng-repeat="post in posts"
<a href ng-href="{{genShareUrl(post.id,post.author_id,'fb')}}>Facebook</a>
執行所生成是在工廠原有的功能,我只是用genShareUrl
控制器與工廠之間的中間人作用。
當從後控制器中的genShareUrl
函數註銷時,我看到此函數被多次調用。
實際上,如果我從後端獲取的所有帖子上全面運行它,我的應用就會停下來。沒有錯誤,只是永恆的加載(我認爲我可能無意中觸發了某種我不熟悉的永久性$ digest循環,或者至少有一些指數形式的調用模式)。
我試圖重新創建一個簡單的例子場景:
http://codepen.io/Mestika/pen/xVexRa
在這裏我可以看到,該函數首先被調用了兩次,然後四次 - 這表明,我認爲摘要週期觸發多次。
在這樣的情況下,我如何最好地在鏈接中產生一些價值?這是最佳做法嗎?如果不是的話,你如何還是可以給我一個關於如何重構代碼的例子。