仅在第一次打开时才填充模态对话框中的data-ui-tinymce

时间:2013-07-24 04:35:36

标签: angularjs

我在模式对话框中使用以下代码:

    <input data-ng-model="modal.formData.text" type="text">
    <textarea
        data-ui-tinymce
        data-ng-disabled="modal.action=='delete'"
        data-ng-model="modal.formData.text"
        id="inputText"
        required></textarea>

当用户单击行表内的网格编辑按钮时,将打开该对话框。

第一次(在硬刷新之后)用户单击编辑,然后填充<input>框和tinymce窗口。随后点击编辑会打开对话框,但只会填充<input>框。

1 个答案:

答案 0 :(得分:1)

我花了最后三天试图解决这个问题,并最终放弃了angularjs指令的tinymce。我不认为它已准备好迎接黄金时段。我的解决方法是将它放在Angular-Bootstrap模式对话框的控制器中:

    setTimeout(function() {   //wait for the dialog to be open
        tinymce.init({
            selector: "#editorID",
            setup:function(ed) {
                ed.on("init", function(){
                    $scope.editor = ed; //save a reference to the editor
                    //manually put your model into the editor:
                    $scope.editor.setContent($scope.model.textForTheEditor); 
                });
            }   
        });
    }, 333); //a third of a second is more time than you need, but it works

然后当对话框关闭时,使用编辑器的内容更新模型:

   $scope.model.textForTheEditor = $scope.editor.getContent();

我知道它不是你想要的解决方案,它违反了整个“控制器中的无DOM”范例,但它似乎是让Ainyler / Twitter Bootstrap对话框中的TinyMCE重复工作的唯一方法。

我也希望使用Angularjs指令获得更好的解决方案!希望这会有所帮助。