在我声明了控制,像这样的观点:角和javascript范围的变量访问
<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();
}
}
}());
问题是,在控制器的顶部声明变量是私人范围变量的一个好习惯吗? – JamesNB
我认为你对JavaScript和Java有点混淆。这些控制器不会在用户之间共享。它都是在客户端实例化的。在Java中,当我们有Singleton类时,我们避免在类的顶部声明变量,否则它将在所有线程中共享。如果你需要一个没有其他控制器可以无意中破坏的变量,那么绑定到作用域将被创建的作用域并被作用域销毁。 –