検索

ホームページ  >  に質問  >  本文

angular.js - コントローラー層メソッドによって読み取られた配列は、$scope の下のオブジェクトに割り当てられます。オブジェクトはページにバインドされています。なぜ、配列の内容がページ上に表示されないのでしょうか。

appCtrls.controller('uploadFileCtrl', function ($scope, $state, $cordovaImagePicker, localStorageService) {

リーリー

})

//ページ
<form name="fileForm" novalidate>
<ion-view>

リーリー

</ion-view>
</form>
getPictures メソッドは文字列配列を返し、文字列配列の各要素はページに画像を表示します。結果は何も見えません。何が起こっているのでしょうか?

PHP中文网PHP中文网2825日前668

全員に返信(2)返信します

  • 大家讲道理

    大家讲道理2017-05-15 16:59:30

    $scope.$digest();

    を $scope.fileList=results; の下に追加してください。

    通常、ng-click などのイベント関数は実行後、スコープが変更されたかどうかを自動的に検出し、変更を適用します。ただし、ここでは非同期操作を実行するために Promise を使用しており、then() 内の関数は非同期操作の完了後に実行されます。この時点ではchooseFileが実行されており、digestを呼び出さない限り変更は自動検出されません。

    つまり、Angular が非同期操作、サードパーティ イベント、他のコントローラーへの変更などの変更を自動的に検出する場合、多くの例外が発生するため、$scope.$digest();

    を追加するように注意してください。

    返事
    0
  • ringa_lee

    ringa_lee2017-05-15 16:59:30

    1. テンプレート内のカスタム命令は通常どおり使用できます。

    2. コントローラーがテンプレートに正常に登録されました。
      上記の 2 つの項目が当てはまる場合、前述したように、テンプレートのレンダリングが完了する前にコールバック関数が正常に返されないため、返されたデータを取得できません。

    返事
    0
  • キャンセル返事