0

Angular を操作するために PluralSight のオンライン チュートリアルに従っていますが、一部の情報が古くなっているようです。

カスタム サービスの作成に関するセクションに到達し、チュートリアルを忠実に実行しましたが、カスタム サービスが正しく機能しません。

github サービスを呼び出そうとすると失敗するようです。promise が script.js.then()ハンドラーに正しく返されないようです。github.getUser()

そのプランクはこちらhttp://plnkr.co/edit/8vy6ZMpUJBfEOQ3qFoKk

誰かが私がここで欠けているものを教えてもらえますか?

4

1 に答える 1

2

機能させたいだけの場合は、次のように修正します。

2 番目のオプションは、次$httpのようにサービスに返品を追加することです。

var getUser = function(username) {
  return $http.get("https://api.github.com/users/" + username)
    .then(function(response) {
      return response.data;
    });
};

$http の前の最初の "return" だけを忘れていることに注意してください。残りはうまく機能していた

それを解決するより良い方法は、サービス内で約束を解決しないことです。そうすれば、シン サービスを利用して、コントローラー内で好きなようにデータを管理できます。

したがって、getUser を次のように変更しました。

var getUser = function(username) {
  return $http.get("https://api.github.com/users/" + username);
};

このようにして、 から Promise 全体を返します$http。「ラッパー」を削除したので、あなたonUserComplete ()も変更する必要があります:

var onUserComplete = function(result) {
  $scope.user = result.data;
  github.getRepos($scope.user).then(onRepos, onError);
};

これが作業中のプランカーです: http://plnkr.co/edit/8abkaU08fCzFreA5APz1?p=info

于 2015-07-09T00:28:05.380 に答える