2016-12-11 5 views
0

サーバーからファイルをアップロードしようとしていますが、ファイルが表示されません。サーバーへのコールは、コードのこのセグメントから開始されます。このサービスを呼び出す

'use strict'; 

angular. 
module('phoneList'). 
component('phoneList', { 
    templateUrl: 'phone-list/phone-list.template.html', 
    controller: ['Phone', 
    function PhoneListController(Phone) { 
     this.phones = Phone.query(); 
     this.orderProp = 'age'; 
     console.log(this.phones); 
    } 
    ] 
}); 

を:

'use strict'; 

angular. 
module('core.phone'). 
factory('Phone', ['$resource', 
    function($resource) { 
    return $resource('phones/:phoneId.json', {}, { 
     query: { 
     method: 'GET', 
     params: { 
      phoneId: 'phones' 
     }, 
     isArray: true 
     } 
    }); 
    } 
]); 

リターンコードが成功したアップロードを示す200、その後304です。しかし、以前のコードセグメントのconsole.logステートメントは、電話機をコンソールに表示しません。

+0

フォーマッタが正常に動作しませんでした – koque

答えて

1

$resourceオブジェクトの$promiseプロパティを使用し、結果をログに記録する:

angular. 
module('phoneList'). 
component('phoneList', { 
    templateUrl: 'phone-list/phone-list.template.html', 
    controller: ['Phone', 
    function PhoneListController(Phone) { 
     this.phones = Phone.query(); 
     this.orderProp = 'age'; 
     //console.log(this.phones); 
     //USE $promise property 
     this.phones.$promise.then(function(phones) { 
      console.log(phones); 
     }).catch(function (error) { 
      console.log("ERROR " + error.status); 
     }); 
    } 
    ] 
}); 

$resourceオブジェクトのメソッドを呼び出すことは直ちに空参照(isArrayに応じてオブジェクトまたは配列)を返すことを理解することは重要です。データがサーバーから戻されると、既存の参照に実際のデータが取り込まれます。

$promiseプロパティの.thenメソッドを使用すると、$ qサービスはサーバーからデータが返されるまでconsole.logを遅延させます。

+0

ありがとう、ジョージ。 – koque

関連する問題