在下面的代码中,
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.20/angular.js"></script>
<script type="text/javascript">
function MyController() {
this.Name = "jag";
this.sal = "4500";
}
MyController.prototype.getAnnualSal = function(){
return (this.sal) * 12;
}
var app = angular.module("sample", []).run(function($rootScope) {
$rootScope.variable = 1;
});
app.controller("emp", MyController);
</script>
</head>
<body ng-app="sample">
<div ng-controller="emp as o" >
Hello {{o.Name}}, your annual salary is {{o.getAnnualSal()}}
</div>
</body>
</html>
使用run
语法,模块($rootScope.variable
)级别引入了sample
。
在$rootScope.variable
MyController?
的语法是什么?
答案 0 :(得分:2)
在这样的控制器中注入rootScope。
angular.module('sample', []).controller('emp', function($scope, $rootScope) {
};
除了你的问题,我不知道为什么你在视图中混合控制器代码.Angular是建立在MVVM模式上的。所以建议分离控制器和视图。
答案 1 :(得分:0)
您可以执行以下操作,将$ rootScope注入控制器
<script type="text/javascript">
function MyController($rootScope) {
this.Name = "jag";
this.sal = "4500";
}
MyController.prototype.getAnnualSal = function(){
return (this.sal) * 12;
}
var app = angular.module("sample", []).run(function($rootScope) {
$rootScope.variable = 1;
});
MyController.$inject = ['$rootScope'];
app.controller("emp", MyController);
</script>