mdDialog - 确认按钮不起作用

时间:2017-01-17 14:42:56

标签: angularjs angular-material

我已经关注了Angular Material的官方文档,但我无法使其成功。我无法看到我的代码出了什么问题。 mdDialog甚至没有显示出来并且对我的取消功能感到困难。

我的代码

$scope.createInviteDialog = function(ev, line, index){

    var parentEl = angular.element(document.body);
    var confirm = $mdDialog.show({
        parent: parentEl,
        locals: {
            line: line,
            index: index
            },
        targetEvent: ev,
        template:
     '<md-dialog aria-label="List dialog">' +
     '  <md-dialog-content>' +
     '<md-input-container class="md-block">' +
     '<label>Write something about you!!</label>' +
     '<textarea ng-model="mensaje" md-maxlength="120" rows="4" md-select-on-focus></textarea>' +
     '</md-input-container>' +
     '<md-dialog-actions>' +
     '    <md-button ng-click="cancel()" class="md-primary">' +
     '      Cancelar' +
     '    </md-button>' +
     '<md-button ng-click="invite("pep")" class="md-primary">' +
     '      Crear postulacion!' +
     '    </md-button>' +
     '</md-dialog-actions>' +
     '</md-dialog>'})
    .then(function(invite){
        console.log('create invite');
    }, function(){
        console.log('cancel invite');
    });
};  

控制台日志

'cancel invite'

1 个答案:

答案 0 :(得分:1)

这是来自角度材质的示例,只有一些更改,例如,您可以将html代码直接作为字符串放在.htmlContent中,它将显示在对话框中。

$mdDialog.confirm()
    .title('Title')
    .htmlContent(html)
    .ariaLabel('Lucky day')
    .ok('Confirm')
    .cancel('Continuar con el envio');
$mdDialog.show(confirm).then(function() {},function(){})

如果您绝对需要在对话框中包含范围,我建议您创建一个预渲染对话框。

$mdDialog.show({
                controller: CustomController,
                templateUrl: '__path/custom.html',
                targetEvent: ev,
                clickOutsideToClose: true
            })
            .then(function(answer) {}, function() {});

function CustomController($scope, $mdDialog) {

        $scope.hide = function() {
            $mdDialog.hide();
        };
    }

唯一的麻烦就是你需要创建一个新的html,没有body,html标签或任何东西,只需要你想要的对话框,但是你可以从你需要的CustomController中获得任何东西。 。请注意,customControllers范围与控制器范围不同。对于谷歌使用

vm = this;