2017-09-16 17 views
0

Angular JS Factoryで複数の関数を作成する方法をお手伝いします。他の機能は、私は、我々がgetProductから入手modifyProduct関数の値(response.data)Angular JS Factoryの他の関数内で複数の関数を定義して1つの関数を他の関数内で呼び出す方法

私は質問の下に言及しているを取得したかったが、はるかに取得didntは以下試してみましたが、以下の機能では

を成功しませんでした理解

AngularJS : From a factory, how can I call another function

Calling a function in another function with AngularJS factory

app.factory('ProductsService', function($http) { 
    function getProduct() { 
    return $http.get('finalmsodetails.json').then(function(response) { 
     console.log(response.data); 
     return response.data; 
    }); 
    } 

    function modifyProduct() { 
    this.getProduct().then(function(value) { 
     console.log(value); 
    }); 
    } 
    return { 
    getProduct: getProduct, 
    modifyProduct: modifyProduct 
    }; 
}); 

答えて

1

あなたは近いです。 this.をドロップする必要があるのは、オブジェクトのメソッドではなくローカルスコープで定義された別の関数を呼び出しているからです。そして、おそらくあなたは、この関数を呼び出す誰もが成功するか失敗するかを知ることができるように、おそらくmodifyProductに約束を返すことを望んでいると思います。

function modifyProduct() { 
    return getProduct().then(function(value) { 
    console.log(value); 
    }); 
} 
+0

私はこの@Nicholasを試してみました、しかし、 – Batman

+0

うんログは 'にconsole.log(response.data)のためprinitingれている理由は値が値、わからないために印刷されていない;' getProduct – Batman

+0

内側だから、それは変更思えます作業し、modifyProductはgetProductを呼び出しています。しかし、getProductが約束を解決するのは当然だが、それに沿って転送するのではなく... ... –

関連する問題