Angularjs MsgController.$inject=[';$scope';]
我是angularJS的新手,想知道以下内容的含义: 为什么下面的语句中重复了单词Angularjs MsgController.$inject=[';$scope';],angularjs,Angularjs,我是angularJS的新手,想知道以下内容的含义: 为什么下面的语句中重复了单词MsgController: angular.module('MsgApp', []) .controller('MsgController', MsgController); 这意味着什么: MsgController.$inject = ['$scope']; 以下是完整的代码: <!DOCTYPE html> <html ng-app='MsgApp'> &
MsgController
:
angular.module('MsgApp', [])
.controller('MsgController', MsgController);
这意味着什么:
MsgController.$inject = ['$scope'];
以下是完整的代码:
<!DOCTYPE html>
<html ng-app='MsgApp'>
<head>
<title></title>
<meta charset="utf-8"/>
<script src="angular.js"></script>
<script>
(function () {
'use strict';
angular.module('MsgApp', [])
.controller('MsgController', MsgController);
MsgController.$inject = ['$scope'];
function MsgController($scope) {
$scope.name = "Dog";
$scope.stateOfBeing = "hungry";
$scope.sayMessage = function () {
return "Dog like to eat healthy snacks";
}
$scope.feedDog = function () {
$scope.stateOfBeing = "fed";
}
}
})();
</script>
</head>
<body>
<h1>Expressions and Interpolation</h1>
<div ng-controller='MsgController'>
{{name}} has a message for you:<br/>
{{sayMessage()}}
<div>
<button ng-click="feedDog()">Feed Dog</button>
<br/>
<img ng-src="images/dog_{{stateOfBeing}}.jpg"/>
</div>
</div>
</body>
</html>
(功能(){
"严格使用",;
angular.module('MsgApp',[])
.控制器(“MsgController”,MsgController);
MsgController.$inject=['$scope'];
函数MsgController($scope){
$scope.name=“狗”;
$scope.stateOfBeing=“饥饿”;
$scope.sayMessage=函数(){
返回“狗狗喜欢吃健康零食”;
}
$scope.feedDog=函数(){
$scope.stateOfBeing=“美联储”;
}
}
})();
表达式与插值
{{name}}有一条消息给你:
{{sayMessage()}}
喂狗
这里,第一个参数表示控制器的名称,第二个参数表示功能,即映射到控制器的功能
MsgController.$inject = ['$scope'];
它表示$scope作为依赖项传递给控制器
MsgController
嘿,您也可以这样定义
angular.module('MsgApp',[])
.控制器(“MsgController”,MsgController)
/**@注入*/
函数MsgController($scope){
//做点什么
}
在自动生成任务中使用gulp ng annotate或grunt ng annotate
Inject/*@ngInject*/在任何具有依赖关系的函数之前注入。这样注入$scope有什么好处吗?没有明显的优势,但它是注入依赖关系的一种方式,您可以在控制器的单元测试中发现$Inject服务被用于注入依赖关系。这是一种优势。如果您没有此行,或者没有使用
.controller('MsgController',['$scope',MsgController])
声明您的控制器,那么当您尝试缩小控制器时,您的代码将被破坏。所有这些都在依赖项注入的角度文档中进行了解释:。在缩小之前,您还可以使用ng annotate为您插入这些说明。这些是基本问题。请调查一下这件事。你可能会在这里得到你所有的答案。
MsgController.$inject = ['$scope'];