Это происходит из-за этого кода в jQCloud.js:
word_size = {
width: word_span.width(),
height: word_span.height()
};
В тот момент, когда ваша страница отображается, всплывающее окно скрыто, поэтому элементы имеют нулевую ширину и высоту и, таким образом, они отображаются в одном месте, перекрывая друг друга.
Чтобы решить эту проблему, вы должны как-то задержать отображение своего облака до момента отображения всплывающего окна. Ниже приведен пример того, как это сделать, но я считаю, что это не лучший.
Во-первых, добавить ng-click
обратного вызова кнопке:
<button type="button" ng-click="showCloud()" class="btn btn-primary" data-toggle="modal" data-target="#myModal">
Open Popup
</button>
Изменить всплывающих разметку, чтобы показать облако некоторые свойство:
...
<div style="width: 500px; height: 350px;" ng-if="!isCloudVisible"></div>
<jqcloud words="words" width="500" height="350" steps="7" ng-if="isCloudVisible"></jqcloud>
...
Первый ДИВ там в качестве заполнителя, чтобы показать пустое пространство а облако - рендеринг (это не так красиво, я согласен).
В контроллере создать showCloud()
обратный вызов и добавить isCloudVisible
свойства:
app.controller('myCtrl', function ($scope, $timeout) {
...
$scope.isCloudVisible = false;
$scope.showCloud = function() {
$timeout(function() {
$scope.isCloudVisible = true;
}, 200);
};
});
Обратите внимание, что я добавил $timeout
службу аргументов контроллера.
Просмотреть работу Demo.
Спасибо за вашу помощь. Один вопрос, с которым я столкнулся сейчас. Фактически, на одной странице у меня есть несколько модалов, и если одно всплывающее окно открыто, другое jQcloud всплывающего окна похоже на предыдущее. Проверьте это: http://plnkr.co/edit/oOnjR9RVIjrWI0WTp59D?p=preview Как это решить? – user1896653
Ну, мое решение - это нечто вроде доказательства концепции. Каждый из ваших модалов должен иметь свои собственные свойства видимости и обратные вызовы кнопок. Я бы предложил написать директиву для этого, с включенной в нее кнопкой и модалом. –
Хорошо, получилось, но дело в том, что я очень новичок в angularjs. Я еще не могу написать свою собственную директиву. Не могли бы вы мне помочь? – user1896653