javascript - angularjs:在指令中使用 contronllerAs 语法时,vm 未定义

标签 javascript angularjs angularjs-directive

我无法从相关 Controller 访问 vm.screensize 属性。我收到的错误是虚拟机未定义。下面是指令和 Controller 。

    angular.module('app.ain.directives')
.directive('ainProjectWizardExplanations', function() {
    return {
        restrict: 'E',
        bindToController: true,
        scope : {
            sidenavHidden : '='
        },
        controller: 'ProjectWizardExplanationsController as vm',
        templateUrl: function() {
          console.log(vm.screensize, vm.animate);
            if(vm.screensize) {
                return 'app/ain/shared/directives/projectWizardExplanationsMobile.html';
            }else {
                return 'app/ain/shared/directives/projectWizardExplanations.html';
            }
        }
    };
});


    //controller
angular
        .module('app.ain.directives')
        .controller('ProjectWizardExplanationsController', ProjectWizardExplanationsController);

    function ProjectWizardExplanationsController($mdMedia,$scope,$rootScope, $timeout) {
                var vm = this;
                vm.animate = true;
                $scope.$watch(function() { return $mdMedia('sm'); }, function(small) {
                    vm.screensize = small;
                });
        }

最佳答案

尝试在声明指令时设置“controllerAs”选项。

.directive('ainProjectWizardExplanations', function() {
return {
    restrict: 'E',
    bindToController: true,
    scope : {
        sidenavHidden : '='
    },
    controller: 'ProjectWizardExplanationsController',
    controllerAs: 'vm',
    templateUrl: function() {
      console.log(vm.screensize, vm.animate);
        if(vm.screensize) {
            return 'app/ain/shared/directives/projectWizardExplanationsMobile.html';
        }else {
            return 'app/ain/shared/directives/projectWizardExplanations.html';
        }
    }
};
});

希望对你有用:)

关于javascript - angularjs:在指令中使用 contronllerAs 语法时,vm 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062316/

相关文章:

javascript - 使用 angularJs 未在模态中显示正确的信息

javascript - AngularJS + highlight.js(用指令中的表达式评估字符串)

javascript - Linq JS 将名称首字母分组的对象

javascript - 完美解决滚动条滚动问题

javascript 执行顺序(以 d3-force 为例)

javascript - Jquery 防止默认值在 WordPress 中不起作用

javascript - 响应式导航栏 - 调整大小时元素不会消失

javascript - Vuejs 指令绑定(bind)模型

javascript - Angular Form 的自定义验证 - 模糊

angularjs - Jasmine 使用 [^form] 依赖项测试 Angular 指令