2014-11-05 70 views
2

我完全新的角度。我看到路過$scope的兩種方法的角度控制器:

app.controller("myCtrl", function($scope) { 
... 
}); 

app.controller('myCtrl', ['$scope', function($scope) { 
... 
}]); 

的是這兩者之間的區別?

+2

第二個是安全的minafication,只是搜索角minsafe – Dylan 2014-11-05 18:27:48

+0

好的非常感謝。 – Byc 2014-11-05 18:30:05

+0

@Byc你可能想看看** [這](https://docs.angularjs.org/tutorial/step_05#a-note-on-minification)** – Josep 2014-11-05 18:32:03

回答

1

人間「棱角」代碼顯然是評估客戶端 - 這意味着當你寫,包括一些模塊(比如其他模塊),實際包括在瀏覽器中執行JavaScript時發生。

所以,當你通過$範圍進入功能,角度評價它是實際$範圍的對象,因爲它承認它作爲方法來指示上述目標。

但是,如果您正在使用某種縮小器來處理.js文件,那麼發生的其他事情就是縮小變量名稱,並且從純粹的JS角度來看,它看起來像是在傳遞名爲'$ scope'的變量進入匿名功能,它會被縮小到更短。

這裏是問題 - 角度需要看到它是一個$範圍,但縮小後它可以被命名爲'a'或類似的東西... BOOM整個完美的計劃毀了。 :'(

該問題已通過允許傳遞一個列表代替簡單函數(在您的問題中的第二個表示法),並使角度理解列表中的每個後續元素都是包含每個後續的「angularish」名稱的字符串並現在縮小)參數功能,應該是該列表的最後一個元素

明顯的顯式字符串不能簡單地縮小而不會丟失其含義 - 所以他們不會:)
問題解決了!
萬歲angularjs

相關問題