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

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

リーリー

})

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

リーリー

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

PHP中文网
PHP中文网

认证0级讲师

全員に返信(2)
大家讲道理

$scope.$digest();

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

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

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

を追加するように注意してください。
いいねを押す +0
左手右手慢动作
  1. テンプレート内のカスタム命令は通常どおり使用できます。

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

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート