4

Danial Farid の ng-file-upload pluginを使用して、AWS S3 で動作する簡単な画像アップロード ページを作成しています。新しい画像をアップロードするためのシンプルなボタンと画像のリストが特徴です。このような:

<ul>
    <li ng-repeat="image in product.images">
        <a class="thumbnail" href="{{ image }}" target="_blank">
          <img ng-src="{{ image }}" alt="image">
        </a>
    </li>
    <li>
        <div class="btn-image-upload" 
            ngf-select 
            ngf-change="upload($files)"
            ngf-accept="'image/*'"></div>
    </li>
</ul>

私のコントローラーで:

$scope.upload = function (files) {

    var aws_policy, aws_policy_signature;

    if (files && files.length) {
        $http
            .get(API_URL+'/helper/aws_policy')
            .then(function(data) {
                aws_policy = data.data.policy;
                aws_policy_signature = data.data.signature;
                for (var i = 0; i < files.length; i++) {
                    var file = files[i];
                    var key = generate_aws_key() + '.' + file.name.split('.').pop();
                    var base_url = 'https://.../';

                    Upload
                    .upload({ ... })
                    .success(function( data, status, headers, config ) {

                        console.log($scope.product);
                        $scope.product.images.push( base_url + key );
                        console.log($scope.product);

                    });
                }
            });
    }
};

ファイルは適切にアップロードされており ( 204 SuccessAWS からナイスを受け取ります)、2 つの が呼び出され、適切な結果が表示されます (2 つ目はアレイconsole.log($scope.product)上のアイテムを特徴としています)。images

つまりね。この赤ちゃんは私の開発マシンでは完全に動作しますが、ステージング サーバーまたは運用サーバーでは、イメージのリストが更新されないことがあり$scope.product.imagesます。時々、私はそれが1/3の時間でそれをすることを意味します.

要約

場合によっては、本番サーバーでのみ、$scope.product.imagesAngularJS ダイジェスト内で が更新されたときに DOM が更新されないことがあります。

私のプログラミング経験から、この種の問題では受け入れられない概念があり、この問題が発生したときに常に発生する何かに関連している必要があることがわかりましたが、広範囲にデバッグして、本当の原因を見つけることができませんでした. アイデア?

4

1 に答える 1