파일을 업로드하고 ng-repeat가 이상하게 업데이트되지 않는 페이지가 제대로 있습니다. 다음을 수행AngularJS ngRepeat Not Updateating Display 올바르게
이 문제를 재현하려면 : 여기
<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됩니다 다음은 관련 코드입니다에
- 클릭 [ 파일 선택]을 선택하고 몇 개의 파일을 선택하십시오 (출력의 아무 곳에 나 표시된 파일이 보이지 않는 것을보십시오)
- 임의의 문자를 입력 상자에 입력하십시오 (마술로 선택한 파일이 나타납니다)
이 문제가 발생할 수있는 요인은 무엇입니까? 나는 거기에 console.log()가 있고 심지어 Batarang에서 검사했기 때문에 $ scope.filesToUpload에 데이터가 제대로 설정되어 있음을 알았습니다. 거기에는 좋은 점이 있지만 어떤 이유로 인해 표시를 위해 업데이트해야합니다. 업데이트 할.
흥미롭게도, 같은 페이지에서 잘 작동하는 다른 ng-repeat가 있습니다. 코드가있는 위치 (업 로더의 FilesAdded 이벤트 내부)와 관련이 있는지 궁금합니다.
난 당신이 NG 반복 한 후 – qualidafial