コントローラー内のすべての http 呼び出しをサービスに移動し、$q
約束するために使用しています...ページを更新してからコンテンツが消えるまで、すべてが機能しているようです。
設定:私のログイン サービスには、 を実行する関数があり、$http.post
と が必要です。次に、応答データが promise に入れられます。username
password
問題:サービスは動作しますが、ページが更新されたときに http 呼び出しを再送信しようとしています。ログインの詳細がないため、呼び出しは失敗します。
質問:ページが更新されたとき (およびユーザーがまだサインインしている場合) に元のデータを保持/保存するにはどうすればよいですか?
サービス:
var app = angular.module('myApp', ['ngRoute']);
app.factory('loginService', function($http, $q) {
var deferResults = $q.defer();
return {
appContent: function(login_username, login_password) {
$http.post('/login',{username: login_username, password: login_password}).success(function(data) {
deferResults.resolve(myData);
});
return deferResults.promise;
}
});
コントローラー:
function loginPageCtrl($scope, loginService) {
$scope.login = function (login_username, login_password, login_rememberMe) {
loginService.appContent(login_username, login_username).then(function (data) {
$scope.pageOneContent = data;
});
};
};
function pageTwoCtrl($scope, loginService) {
// Use the same data when page is refreshed
// without having to pass-in login details
loginService.appContent().then(function (data) {
$scope.pageTwoContent = data;
});
};