如何在$ mdDialog.show AngularJS Material中添加函数

时间:2017-01-29 22:17:57

标签: angularjs angular-material mddialog

我使用angularJS材质对话框来创建弹出窗口,我想输入一些任务完成的时间。我想使用bootstrap-datepicker,我必须为我的输入分配函数,

angular.element(".timepicker").timepicker({
    showInputs: false
});` 

但问题是当这个函数被击中时,该元素不存在。

这是我的控制器功能:

$scope.showCompleteConfirm = function (ev) {
        //Timepicker
        angular.element(".timepicker").timepicker({
            showInputs: false
        });
        $mdDialog.show({
            controller: UserDetailController,
            templateUrl: 'app/components/templates/CustomTimeDialog.html',
            parent: angular.element(document.body),
            targetEvent: ev,
            clickOutsideToClose: true,
            fullscreen: false // Only for -xs, -sm breakpoints.
        })
        .then(function (answer) {
            //success
        }, function () {
            //fail
        });
    };

我能做什么,它的工作是在我的HTML页面中创建标签并从那里分配标签,因为当这个模板被调用时,我的输入将存在,但我想知道是否有办法如何制作它仅适用于我在控制器中的功能。

1 个答案:

答案 0 :(得分:1)

我不完全确定,但我认为$mdDialog有一个onComplete生命周期钩子可以使用。 show()完成运行后会被触发。

$mdDialog.show({
            controller: UserDetailController,
            templateUrl: 'app/components/templates/CustomTimeDialog.html',
            parent: angular.element(document.body),
            targetEvent: ev,
            clickOutsideToClose: true,
            fullscreen: false // Only for -xs, -sm breakpoints.
            onComplete: function (){
                     angular.element(".timepicker").timepicker({
                     showInputs: false
              });
            }
            })