2015-07-13 61 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; 

这神奇后,我的模板终于告诉我{{布拉布拉}}变量。

角剂量没有辜负我的期望:-(

相关问题