亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

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

javascript - angularjs怎么知道回調函數里需要什么參數?

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

問題描述

例如這樣

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

angular是怎么知道我第二個參數需要$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 就會根據顯式聲明的 $scope 和 $rootScope 去找。那么你在匿名函數的參數里,設置成什么都沒關系。注意先后順序就好。

或者,你也可以通過手動調用 $inject 來實現。就像這樣:

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
相關文章:
主站蜘蛛池模板: 国产一级爱c片免费播放 | 成人国产三级精品 | 日本亚洲欧美国产日韩ay高清 | 一区二区三区观看 | 欧美高清强视频 | 国产成人福利视频在线观看 | 国产成人综合亚洲欧美在 | 日韩精品亚洲专区在线观看 | 爱啪网亚洲第一福利网站 | 国产成人午夜精品影院游乐网 | 国内精品小视频 | 日本免费不卡在线一区二区三区 | 中文偷拍视频在线观看 | 国产成人一区二区三区影院免费 | 91亚洲国产成人久久精品网址 | 男人毛片 | 一级真人毛片 | 综合另类| 91无套极品外围在线播放 | 欧美一级毛片在线一看 | 亚洲国产天堂久久九九九 | 欧美一级毛片黄 | 波多野结衣一级视频 | 欧美第一网站 | 亚洲一级香蕉视频 | 操美女大逼视频 | 女人a级毛片 | 精品久久久久久中文字幕一区 | 一级片免| 最近中文字幕精彩视频 | 精品国产呦系列在线看 | 欧美特黄三级成人 | 韩国一级毛片大全女教师 | 欧美中文一区 | 一级国产视频 | a男人的天堂久久a毛片 | 亚欧精品在线观看 | 性欧美videos 精品 | 中国性孕妇孕交在线 | 亚洲国产成人精品激情 | 国产精品亚洲二线在线播放 |