【问题标题】:Kendo Dialogue Unable to Click second TIme剑道对话无法点击第二次
【发布时间】:2017-03-20 21:25:50
【问题描述】:

我得到以下代码来展示对话,但是在第一次点击后对话不会显示在 UI 中。

$('#wayneDialog').kendoDialog({
            width: '400px',
            title: $scope.resourceString.Delete_Confirm_Title+ "'"+ name +"'?",
            closable: true,
            modal: true,
            content: $scope.resourceString.Delete_confirm_Content,
            actions: [
                {
                    text: $scope.resourceString.Yes,
                    action: $scope.onDeleteConfirm,
                    primary: true
                },
                {
                    text: $scope.resourceString.Cancel
                }
            ]
        }); 

我不确定在这种情况下我是否需要做任何额外的事情。

【问题讨论】:

  • 我注意到即使在我关闭对话框后
    '#wayneDialog' 仍然有数据。
  • 您有任何控制台错误吗?
  • 无控制台错误

标签: jquery kendo-ui


【解决方案1】:

我想通了。 Kendo Dialog 在我的调用函数中反复初始化。 将代码更改为只初始化一次 Kendo Dialog,然后在调用 Kendo Dialog Open 函数之前更新 Title 和 Dialog。

【讨论】:

  • 有什么方法可以为此添加代码吗?我有一个使用局部视图的剑道对话框,它也只打开一次,但我不知道我做错了什么。谢谢你。 @待定
【解决方案2】:

我们需要销毁 div 并在关闭事件中再次添加它。

$('#wayneDialog').kendoDialog({
            width: '400px',
            title: $scope.resourceString.Delete_Confirm_Title+ "'"+ name +"'?",
            closable: true,
            modal: true,
            content: $scope.resourceString.Delete_confirm_Content,
close: function () {
                    if ($('#wayneDialog').data("kendoDialog")) {
                        $('#wayneDialog').data("kendoDialog").destroy();
                        $('<div id="wayneDialog"/>').appendTo('body');
                    }
                    return;
                }           
 actions: [
                {
                    text: $scope.resourceString.Yes,
                    action: $scope.onDeleteConfirm,
                    primary: true
                },
                {
                    text: $scope.resourceString.Cancel
                }
            ]
        }); 

【讨论】:

    【解决方案3】:

    明确设置visible: true 选项应该可以解决问题:

    $('#wayneDialog').kendoDialog({
                visible: true,
                width: '400px',
                title: $scope.resourceString.Delete_Confirm_Title+ "'"+ name +"'?",
                closable: true,
                modal: true,
                content: $scope.resourceString.Delete_confirm_Content,
                actions: [
                    {
                        text: $scope.resourceString.Yes,
                        action: $scope.onDeleteConfirm,
                        primary: true
                    },
                    {
                        text: $scope.resourceString.Cancel
                    }
                ]
            }); 
    

    【讨论】:

      【解决方案4】:

      我在使用 Kendo for Angular 时遇到了同样的问题。 我的问题是我让 Kendo Dialog 服务生成任何组件,该组件本身可能有一个带有 kendoDialogContainer 的 div(用于创建对话框)。

      这导致 DOM 中存在两个或多个,因此似乎只有最低级别起作用。删除它的子实例似乎有效。

      (不知道为什么不能存在 Global ,似乎有点奇怪)

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签