![](/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.