![](/img/trans.png)
[英]how to access a variable from outside the $scope function angular javascript?
[英]Angular and javascript scope for variable access
在视图中,我像这样声明控制器:
<div data-ng-controller="myController as myCtrl">
{{myCtrl.selectedMonth}}
</div>
我希望能够在视图中访问一个月,但是我不希望从视图中访问日期对象。 这样可以吗? 从视图可以访问testabc吗? 这是在控制器上具有私有作用域变量的好方法吗?
;(function() {
'use strict';
angular
.module('myApp')
.controller('myController', myController);
function myController() {
var testabc = 'can you see this';
var dateRef = new Date();
var vm = this;
angular.extend(vm, {
selectedMonth: undefined
});
init();
function init(){
vm.selectedMonth = dateRef.getMonth();
}
}
}());
首先不要触发控制器中的初始化,因为它有时会产生问题。 您可以使用angular ng-init指令。
;(function() {
'use strict';
angular
.module('myApp')
.controller('myController', myController);
function myController() {
var testabc = 'can you see this';
var dateRef = new Date();
var vm = this;
angular.extend(vm, {
selectedMonth: undefined,
init:init
});
function init(){
vm.selectedMonth = dateRef.getMonth();
}
}
}());
您的看法将是
<div data-ng-controller="myController as myCtrl" ng-init="myCtrl.init()">
{{myCtrl.selectedMonth}}
</div>
PS是的,您的selectedMonth在视图中可见。
您绑定到范围的任何内容都将在视图中访问。 范围是控制器和HTML视图之间的粘合剂。 如果您只需要访问月份,则将其绑定到vm。
vm.selectedMonth= dateRef.getMonth();
这条线就足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.