亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:83日期: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
相關文章:
主站蜘蛛池模板: 欧美高清一区二区三区欧美 | 国产精品综合 | 国产精品成人69xxx免费视频 | 亚洲国产欧美在线人成aaa | 一色综合| 狠狠色狠狠色综合婷婷tag | 国产一级做a爰片久久毛片99 | 国产成人一区二区三区视频免费蜜 | 欧美二区三区 | 亚洲国产日韩a在线亚洲 | sese在线播放 | 成人精品一区二区户外勾搭野战 | 在线视频观看国产 | 久久国产亚洲精品麻豆 | 国产aaaaaa| 久久综合九色综合亚洲小说 | 国产欧美日韩不卡 | 小明永久视频免费播放 | 日韩一级生活片 | xxx国产精品视频 | 久久两性视频 | 欧美亚洲另类久久综合 | 黄色a视频 | 轻轻碰在线视频免费视频 | 久草在线这里只有精品 | 国产一级爱片 | 久久久久国产成人精品亚洲午夜 | 国产激情一区二区三区成人91 | 日韩特黄| 国产噜噜在线视频观看 | 黄色成人毛片 | 久久日本精品一区二区免费 | 色片网| 97国产成人精品免费视频 | 国产午夜精品一二区理论影院 | 国产一区在线视频观看 | 在线欧美国产 | 成人私拍福利视频在线 | 成人免费一区二区三区 | 国产亚洲精品va在线 | 亚洲福利区 |