gpt4 book ai didi

javascript - 变量访问的 Angular 和 javascript 范围

转载 作者:行者123 更新时间:2023-12-03 05:06:48 24 4
gpt4 key购买 nike

在 View 中,我像这样声明 Controller :

<div data-ng-controller="myController as myCtrl">
{{myCtrl.selectedMonth}}
</div>

我希望能够在 View 中访问月份,但我不希望从 View 中访问日期对象。这能行吗? testabc 可以从 View 访问吗?这是在 Controller 上拥有私有(private)作用域变量的好方法吗?

;(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();
}


}

}());

最佳答案

首先不要在 Controller 中触发 init,因为它有时会产生问题。您可以使用 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>

P.S 是的,您选择的月份在 View 中可见。

关于javascript - 变量访问的 Angular 和 javascript 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41982430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com