2015-07-13 20 views
0

我是AngularJs中的新成員,無法解決這個問題。變量不傳遞到控制器的視圖

我嘗試在unassuming方式的範圍內更改變量。

.controller('AuthController', function($scope,Auth) { 
     $scope.submit = function() { 
      Auth.login($scope.username,$scope.password, function(result){ 
       $scope.result = result 
      }); 
     } 
     }) 

如果驗證是使GET請求,服務器並獲取響應這樣的服務:

{ 'status': 1, 'message': "User does not found!"} 

但我的變量不會在我的模板刷新。當我把這個

$scope.result = { 'status': 1, 'message': "User does not found!"} 

以外的函數$ scope.submit。它工作正常。

這是我的路由。

$stateProvider 
    .state('index', { 
     url: "/", 
     templateUrl: "/static/templates/_index.html", 
    }) 

我的模板是。

<div class="alert" >{{ result.message }}</div> 

有人可以解釋我,我做錯了什麼? 謝謝。

這是我的服務。

function login(username, password, callback) { 
    return $http.post('/api/login/', { 
    username: username, password: password 
    }).success(callback); 

} 

插入

Auth.login($scope.username,$scope.password, function(result){ 
$scope.result = result 
console.log($scope.result); 

後,我看到我的螢火正確的數據。 。

對象{狀態= 1,消息= 「!用戶沒有找到」}

$範圍$適用(); - 給我錯誤:[$ rootScope:inprog] http://errors.angularjs.org/1.4.0/ $ rootScope/inprog?p0 =%24digest

+0

嘗試'$範圍$適用();'$ scope.result =結果後';' –

+0

什麼'的console.log(結果)在'你在'$ scope.result = result'之前的回調說? – Fissio

+0

你是否在調用提交函數somwhere? – nikhil

回答

0

您確定Auth.login()未返回承諾。它看起來像是想在這種情況下嘗試...

Auth.login($scope.username, $scope.password) 
    .then(function(result){ 
     $scope.result = result 
    }); 

很難說沒有看到您的Auth服務。

0

如果您Auth.login()回報promise你可以使用它then功能來定義成功和錯誤處理程序,如:

Auth.login($scope.username, $scope.password) 
     .then(function(result){// success handler 
      $scope.result = result 
      $scope.$apply(); 
     },function(error){// error handler 
      console.log(error); 
    }); 

但是,如果它使一個ajax呼叫,不返回promise,你可以使用$q服務自己回覆一個承諾。您可以這樣做:

var deferred = $.defer(); 
deferred.resolve($.ajax({ 
// Your ajax call 
})); 

您可以使用return deferred.promise返回承諾。

注意:確保您在Auth服務中注入$q服務。

0

的問題,決定通過改變

$scope.result = result.data; 

$scope.blabla = result.data; 

這神奇後,我的模板終於告訴我{{布拉布拉}}變量。

角劑量沒有辜負我的期望:-(

相關問題