У меня есть страница, на которой я использую plupload для загрузки файлов и имеет странную проблему, когда ng-repeat не обновляется должным образом. Вот соответствующий код:AngularJS ngRepeat Не обновляйте дисплей надлежащим образом
<div ng:app>
<div name="myForm" ng-controller="Ctrl">
<input ng-model="test" type="text" />{{test}}<div id="container" class="controls">
<div id="filelist">
<div ng-repeat="file in filesToUpload">{{file.name}} ({{file.size}}) <b>{{file.percent}}</b></div>
</div>
<br />
<a id="pickfiles" href="#">[Select files]</a>
</div>
</div>
</div>
function Ctrl($scope) {
$scope.test = '';$scope.filesToUpload = [{id: 1, name: 'test', size: '123kb'}];
$scope.addItem = function(object) {
$scope.filesToUpload.push(object);
}
$scope.uploader = new plupload.Uploader({
runtimes : 'html5,flash,browserplus,gears',
browse_button : 'pickfiles',
container : 'container',
max_file_size : '10mb',
url : 'upload.php',
flash_swf_url : '/plupload/js/plupload.flash.swf'
});
$scope.uploader.init();
$scope.uploader.bind('FilesAdded', function(up, files) {
$scope.filesToUpload = [];
$.each(files, function(i, file) {
$scope.addItem({
id: file.id,
name: file.name,
size: plupload.formatSize(file.size)
});
});
console.log($scope.filesToUpload);
up.refresh(); // Reposition Flash/Silverlight
});
}
Здесь является урезана jsfiddle показывая вопрос происходит:
Чтобы воспроизвести эту проблему, выполните следующие действия:
- Нажмите на [ выберите файлы] и выберите несколько файлов (обратите внимание, как вы не видите файлы, отображаемые в любом месте на выходе)
- Введите любой символ в поле ввода (возможно, будут найдены файлы, которые вы выберете)
Что может вызвать такой тип поведения? Я имею в виду, что я знаю, что данные правильно устанавливаются в $ scope.filesToUpload, потому что у меня есть console.log() и даже проверил его в Batarang, и он хорошо там работает, но по какой-то причине нужно что-то еще обновить для отображения быть обновленным.
Интересно, у меня есть еще один ng-repeat, который отлично работает на той же странице. Мне интересно, имеет ли он какое-либо отношение к тому, где находится код (находящийся внутри события FilesAdded на загрузчике).
Я думаю, что у вас есть дополнительный близко Div тег после нг-повтора – qualidafial