我目前正在尝试在单击“添加”按钮时动态添加新的 textAngular。
由于 HTML 页面中已经存在第一个 textAngular 元素,因此使用所见即所得函数初始化工作正常,我可以使用工具栏并在相应的 textarea 中查看结果。
当我单击“添加”按钮时,我想要另一个 textAngular 编辑器及其相应的 textarea,我设法拥有并初始化它,但是一旦我这样做,以前的 textAngular 编辑器就不起作用并且不是t 不再链接到它的文本区域。工具栏也是不可点击的。
我得到以下结果:
这是index.html页面的代码:
<body>
<div id="mainContainer">
<div ng-app="textAngularTest" ng-controller="wysiwygeditor" class="container app">
<div name="cours" id="textbox1">
<h3>TextBOX 1</h3>
<div text-angular="text-angular" name="htmlcontent" ng-model="htmlcontent" ta-disabled="disabled"></div>
<h3>HTML BRUT 1</h3>
<textarea ng-model="htmlcontent" style="width: 100%"></textarea>
<br>
<button id="btn1" onclick="displayEditor()">Add</button>
</div>
</div>
</div>
<script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.2.4/angular.min.js'></script>
<script src='https://ajax.googleapis.com/ajax/libs/angularjs/1.2.4/angular-sanitize.min.js'></script
<script src='https://cdnjs.cloudflare.com/ajax/libs/textAngular/1.1.2/textAngular.min.js'></script
</body>
<!-- partial -->
<script src="./textbox.js"></script>
样式.css:
.ta-editor {
min-height: 300px;
height: auto;
overflow: auto;
font-family: inherit;
font-size: 100%;
}
这是textbox.js的代码:
angular.module("textAngularTest", ['textAngular']);
function wysiwygeditor($scope) {
console.log($scope);
$scope.orightml = 'Hello';
$scope.htmlcontent = $scope.orightml;
$scope.disabled = false;
};
function displayEditor() {
var number = Math.random();
document.getElementById("mainContainer").innerHTML += '<div ng-app="textAngularTest' + number + '" ng-controller="myController' + number + '" class="container app" id="mainContainer' + number + '"><h3>TextBox2</h3><div text-angular="text-angular" id="htmlcontent" name="htmlcontent" ng-model="htmlcontent" ta-disabled="disabled"></div><h3>HTML BRUT 2</h3><textarea ng-model="htmlcontent" style="width: 100%"></textarea>';
angular.module('textAngularTest' + number, ['textAngular'])
.controller('myController' + number, function ($scope) {
$scope.orightml = 'Hey';
$scope.htmlcontent = $scope.orightml;
});
angular.bootstrap(document.getElementById('mainContainer' + number), ['textAngularTest' + number]);
}
代码说明:当我单击“添加”按钮时,我构建了新的 textAngular 编辑器的 HTML 及其文本区域,为它们提供了独特的属性,因此它们与以前的属性无关。当我在 DOM 上添加这个新的 HTML 内容时,我用它自己的控制器初始化了新的 angular 模块。但是一旦我这样做并且正如我上面所说的那样,以前的 textAngular 编辑器就不再工作了。
有谁知道如何在不破坏之前的情况下实现该目标并初始化多个 textAngular 编辑器?