2017-12-12 14 views
0

現在画像をimgタグに読み込もうとしています。私の問題は、画像の読み込みは特定のsrc URLで行うことができないということです。私は画像を返す関数を作成しました。私は現在、イメージがロードされていない次の形式の関数を呼び出しています。私は関数が本当に配列バッファとして値を返すことを確認していることに注意してください。ご協力ありがとうございました!画像を読み込む角度があります。JS

コード:

JS-

//use .factory Img object to return arraybuffer value 
$scope.getImage = function(productid) { 
     console.log(productid); 
     par = {id: [productid]}; 
     Img.getImage(par).$promise.then(
     function(data){ 
      console.log("success:" + data); //I am able to see this result but not display in img tag 
      return data; 
     }, 
     function(data){ 
      console.log("error" + data); 
     } 
    ); 
    } 

HTML-

<img ng-src="{{getimage(id)}}"> 
+1

こんにちはpaul590、私はあなたが非同期操作から値を取得し、ビューにバインドしたい場合は、$scopeパラメータとして設定する必要がありますあなたが何を求めているのか分からない? – Derek

+3

'getimage'は非同期ですが、URLを返しません。これは約束です。 –

+0

@Derek私は混乱のためお詫びします、私は実際のURLを持っていないが、配列バッファを返す関数を持っていないとき、私はimgタグに画像を読み込むことができますかと思います。 – paul590

答えて

3

機能Img.getImage(par).$promiseは非同期です。内部に値を返すことはできません。

それが最善の解決策ではないのですが、あなたはそのように気にいらない操作を行うことができます。

JS:

$scope.getImage = function(productid) { 
    console.log(productid); 
    par = {id: [productid]}; 
    Img.getImage(par).$promise.then(
    function(data){ 
     console.log("success:" + data); //I am able to see this result but not display in img tag 
     scope.productionPicturePath = data; 
     return data; 
    }, 
    function(data){ 
     console.log("error" + data); 
    } 
); 
} 

はHTML:<img ng-src="{{productionPicturePath}}">

+0

私はルーキーミスを犯している可能性がありますが、画像をこのようにロードすると、次のlocalhostを使って自分のサーバーを見てみることができません:8080 /データの結果が表示されます – paul590

+0

これがトリックでした!ありがとうございました! – paul590

2

あなたgetImage機能は、サービスから配列バッファを返しませんが、あなたが約束からそれを得ているからです。その後、

$scope.getImage = function(productid) { 
     $scope.currentArrayBuffer = null; 
     par = {id: [productid]}; 
     Img.getImage(par).$promise.then(
     function(data){ 
      console.log("success:" + data); 
      $scope.currentArrayBuffer = data; 
     }, 
     function(data){ 
      console.log("error" + data); 
     } 
    ); 
    } 

そして:

<img ng-src="{{currentArrayBuffer}}"> 
+0

私が上記の応答で述べたように私はルーキーミスを犯している可能性がありますが、画像をこのようにロードすると、次のlocalhostを使って自分のサーバーを見てみることができません:8080 / – paul590