【发布时间】:2015-10-01 15:24:22
【问题描述】:
我是 AngularJs 的新手,无法解决这样的问题。
我尝试以这种谦逊的方式更改范围内的变量。
.controller('AuthController', function($scope,Auth) {
$scope.submit = function() {
Auth.login($scope.username,$scope.password, function(result){
$scope.result = result
});
}
})
Auth 是一种向服务器发出 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);
我在我的萤火虫中看到正确的数据。
Object { status=1, message="未找到用户!"}
$scope.$apply(); - 给我错误:[$rootScope:inprog] http://errors.angularjs.org/1.4.0/$rootScope/inprog?p0=%24digest
【问题讨论】:
-
在
$scope.result = result;之后尝试$scope.$apply(); -
console.log(result)在$scope.result = result之前的回调中说什么? -
你是在哪里调用提交函数吗?
-
Auth.login() 是否返回一个承诺或什么?我们可以看看你的 Auth 服务吗?
-
这是我的服务。 function login(username, password, callback) { return $http.post('/api/login/', { username: username, password: password }).success(callback); }
标签: angularjs controller scope