javascript – ng-click用户定义的$mdDialog与外部模板不起作用

前端之家收集整理的这篇文章主要介绍了javascript – ng-click用户定义的$mdDialog与外部模板不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

第一次用$mdDialog工作我习惯用外部HTML模板创建一个对话框.

到目前为止,这么好,…它的工作模板可以打开,但在HTML中的ng-click不再工作.

我找不到它的原因.

在userController中调用mdDialog,如下所示:

在userController中打开$mdDialog的方法

vm.showMenu = function showMenu(ev){

    $mdDialog.show({
        controller: MenuDialogController,templateUrl: 'app/components/head/user/menu.dialog.html',parent: angular.element($document.body),targetEvent: ev,clickOutsideToClose:true,fullscreen: $scope.customFullscreen // Only for -xs,-sm breakpoints.
    })
        .then(function(answer) {
            $scope.status = 'You said the information was "' + answer + '".';
        },function() {
            $scope.status = 'You cancelled the dialog.';
        });
};

这是对话框的对话框控制器,按钮不起作用:

angular
    .module('trax')
    .controller('MenuDialogController',MenuDialogController);

function MenuDialogController() {

    var vm = this;

    vm.close = function close(){
        alert('close clicked');
    }

    vm.ok = function ok(){
        alert('ok clicked');
    }

}

这是dialogController的HTML代码

没有任何ng-clicks正在运行!

有什么暗示吗?

最佳答案
    angular
    .module('trax')
    .controller('MenuDialogController',MenuDialogController);

function MenuDialogController() {

    var vm = this;

    //Here change vm to $scope
    $scope.close = function close(){
        alert('close clicked');
    }

    $scope.ok = function ok(){
        alert('ok clicked');
    }

}

您必须将func分配给对话框控制器的$scope

猜你在找的JavaScript相关文章