av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

javascript - angularjs怎么知道回調(diào)函數(shù)里需要什么參數(shù)?

瀏覽:109日期:2024-03-06 14:11:41

問題描述

例如這樣

app.controller(’myCtrl’, function($scope, $rootScope) { // 將$rootScope改成其他名字就不行了。 $scope.names = ['Emil', 'Tobias', 'Linus']; $rootScope.lastname = 'Refsnes';});

angular是怎么知道我第二個參數(shù)需要$rootScope?

問題解答

回答1:

因為 AngularJS 提供兩種注入方式。一種叫 implicit dependency injection(隱式依賴注入),一種叫 explicit dependency injection(顯式依賴注入)。

你的代碼中,使用的是第一種,隱式依賴注入:

app.controller(’myCtrl’, function($scope, $rootScope) { $scope.names = ['Emil', 'Tobias', 'Linus']; $rootScope.lastname = 'Refsnes';});

由于 $scope 和 $rootScope 都是 AngularJS 的 built-in service,因此 AngularJS 可以找到你想要注入的東西。但如果你改成 rootScope,這樣 AngularJS 就從自己的框架中找不到了。

如果使用顯式依賴注入,就是這樣:

app.controller(’myCtrl’, [’$scope’, ’$rootScope’, function(whatever, blah) { whatever.names = ['Emil', 'Tobias', 'Linus']; blah.lastname = 'Refsnes';}]);

這樣 AngularJS 就會根據(jù)顯式聲明的 $scope 和 $rootScope 去找。那么你在匿名函數(shù)的參數(shù)里,設置成什么都沒關系。注意先后順序就好。

或者,你也可以通過手動調(diào)用 $inject 來實現(xiàn)。就像這樣:

var myController = function($scope, $rootScope) { $scope.names = ['Emil', 'Tobias', 'Linus']; $rootScope.lastname = 'Refsnes';});myConroller.$inject = [’$scope’, ’$rootScope’];app.controller(’myCtrl’, myController);

詳情請參考文檔:https://docs.angularjs.org/gu...Dependency Annotation 那一部分。

文檔中同樣提醒了你,如果你打算壓縮代碼,那就不要使用隱式依賴注入。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 国产福利资源在线 | 亚洲综合成人网 | 欧美精品导航 | 一区二区在线 | 在线视频日韩 | 成人精品鲁一区一区二区 | 精精国产xxxx视频在线播放 | 精品一区二区三区在线观看 | 久久久成| 中文字幕在线一区二区三区 | 欧美女优在线观看 | 范冰冰一级做a爰片久久毛片 | 精品欧美一区二区三区久久久 | 中国av在线免费观看 | 日本不卡视频在线播放 | 日本不卡在线视频 | 奇米av| 免费成人在线网站 | 国产成人免费视频网站视频社区 | 亚洲狠狠丁香婷婷综合久久久 | 我爱操 | 国产精品视频网站 | 精品毛片 | 麻豆久久久久久久 | 中文字幕国产一区 | 色婷婷一区二区三区四区 | 欧美精品一区三区 | 日本三级网| 中文字幕人成乱码在线观看 | 午夜国产 | 在线日韩av电影 | 欧美日韩久久 | 精品久久一区 | 精品粉嫩aⅴ一区二区三区四区 | 亚洲精品久久久久久一区二区 | 久草中文网| 亚欧洲精品在线视频免费观看 | 国产精品久久久久aaaa九色 | 日韩精品视频网 | 国产精品自拍啪啪 | 最近中文字幕第一页 |