如何从AngularJS中的$ http.get获取特定值

时间:2016-05-16 21:51:58

标签: angularjs json

我有一个简单的问题。当我在角度控制器中使用$ http.get时,如何使用结果中的特定值?让我们说我收到用户名和密码,我想分别比较每一个。

app.controller("loginController", function ($scope, $http) {
    $scope.submit = function () {
        $http.get("../Views/userAuthentecation.aspx")
        .then(function (response) {
            $scope.members = response.data;            
        });
    }
});

从上面的控制器中,我使用userAuthentecation.aspx从后面的代码中读取数据库,并将结果显示为json格式。因此,$scope.members实际上是一个包含用户名和密码的json格式数据。

1 个答案:

答案 0 :(得分:1)

通常我们会像你一样为单个对象分配一个完整的响应

Invalid conversion from 'int' to 'int*'

但是,如果你在$scope.members = response.data; 中有3个对象,并且你希望它们都在不同的对象中,那么你可以简单地将它们分配给不同的对象,如下所示

response.data

将数据分配给$scope.id = response.data.id; $scope.username = response.data.username; $scope.members = response.data.password; 后,无论您喜欢什么,都可以使用它。但由于您在控制器中有身份验证代码,我想您正在尝试创建身份验证系统。好吧,在这种情况下,一旦填写了登录表单,就会将其发送到控制器中的一个功能进行身份验证,例如

$scope.objects

一旦控制器获得请求,您可以在同一个函数中处理它,或者您可以将它发送到身份验证服务,该服务通常是执行特定任务的工厂,在这种情况下它将检查用户的信用。

<form name="form" ng-submit="login()" role="form">

上述函数正在调用另一个工厂来验证用户凭据,将调用工厂$scope.login = function () { $scope.dataLoading = true; AuthenticationService.Login($scope.username, $scope.password, function(response) { if(response.success) { AuthenticationService.SetCredentials($scope.username, $scope.password); $location.path('/'); } else { $scope.error = response.message; $scope.dataLoading = false; } }); }; ,它将把参数传递给AuthenticationService函数。工厂内的功能可以像这样调用

Login()

一旦检查并验证凭据并且响应代码为200,这意味着AuthenticationService.login() 然后输入的信用卡将被传递到

ok

将生成加密的cookie

希望这会对认证和比较响应数据有所了解,可以找到整个workig认证示例here