簡體   English   中英

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM