午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

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

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

瀏覽:186日期: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
相關文章:
主站蜘蛛池模板: 日韩欧美区 | 九九九在线 | 欧美激情免费看 | 国产精品久久777777 | 成人精品亚洲 | 在线观看免费国产 | 久久精品国产99精品国产亚洲性色 | 黄色一级大片在线免费看国产一 | 91成人国产 | 国产成人av网站 | 四虎在线免费播放 | 色偷偷资源| 自拍偷在线精品自拍偷无码专区 | 二级毛片视频 | 亚洲天堂手机版 | 久久九九视频 | 婷婷射丁香 | 一级片视频免费看 | 久久精品在线视频 | 国产成人av一区二区三区 | 激情高潮呻吟抽搐喷水 | 精品av一区二区 | 午夜久久久久久久久久影院 | av免费网站在线观看 | 欧美亚洲激情 | 国产精品欧美久久久久天天影视 | 国产一区二区三区三州 | 亚洲欧美日韩国产精品 | 国产精品乱码久久久久久 | 亚洲网站在线播放 | 精品国产一区在线观看 | 精品欧美激情精品一区 | 成年人网站免费看 | 亚洲视频中文 | 国产黄色网络 | 欧美黄色a级 | 日韩高清一二三区 | 国产精品伊人久久 | 国产美女免费看 | 久久窝窝| 成人免费视频网 |