В приведенном ниже коде,Синтаксис для доступа к переменной rootScope в MyController
<!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?
** Один податливые: ** В моем коде Что такое преимущество создания '' name' и sal' как член экземпляра контроллера ('o'), а не членов' $ scope'? FYI .. Я знаю, что экземпляр контроллера является членом '$ scope'. Одна ссылка-http: //codetunnel.io/angularjs-controller-as-or-scope/ – overexchange
Итак, не можем ли мы использовать подобный подход, не введя «$ rootScope» в контроллер? В противном случае, я знал синтаксис, который вы написали в ответ – overexchange
@overexchange: что вы делаете с rootScope? '$ rootScope' не следует использовать для обмена переменными, когда у нас есть такие вещи, как сервисы и фабрики. Однако вы можете использовать' .scope(). $ root' также косвенно получить корневой код; –