AngularJs-将值从视图传递到控制器,然后传递到服务

AngularJs-将值从视图传递到控制器,然后传递到服务,angularjs,angularjs-service,angularjs-controller,Angularjs,Angularjs Service,Angularjs Controller,我看过类似的问题,但都没有意义。 我有一个api,我将使用它来登录用户。它们提供用户名和密码,然后我查询api,api返回数据,帮助我决定是否登录用户。 我试图弄清楚如何将值从视图传递到服务,并生成正确的url字符串来查询url。这里是风景 <div ng-controller="AppController"> <input type="text" placeholder="username" ng-model="password" />

我看过类似的问题,但都没有意义。 我有一个api,我将使用它来登录用户。它们提供用户名和密码,然后我查询api,api返回数据,帮助我决定是否登录用户。 我试图弄清楚如何将值从视图传递到服务,并生成正确的url字符串来查询url。这里是风景

<div ng-controller="AppController">
    <input type="text" placeholder="username" ng-model="password" />        
    <input type="password" placeholder="Password" ng-model="password" />   
    <input type="submit" value="Sign In" ng-click="login()" />
</div>
然后是服务

app.service('AppService', function ($http) {
    this.getData = function () {
        return $http({
            method: 'POST',
            url: 'http://www.example.com/api/parent',/*should be http://www.example.com/api/parent?username=username&password=password */
            parameters: {           
            }
        });
    }
});
我需要的帮助是如何在视图中附加用户名和密码,以创建正确的查询字符串,如服务中的注释所示。
谢谢

在从控制器呼叫服务时,像下面的AppService.getdata$scope.username,$scope.password一样传递用户名和密码。类似地,修改AppService中的函数定义,将用户名和服务作为参数。

您不想将用户名和密码传递给getData的原因是什么

相反,您可以使用$http并使用自定义逻辑和操作创建更复杂的对象

或者,您可以只使用$http参数而不是参数,只传递:

parameters{'username': username, 'password': password}

您可以按如下方式传递参数:

return $http({
            method: 'POST',
            url: 'http://www.example.com/api/parent',/*should be http://www.example.com/api/parent?username=username&password=password */
            parameters: {     
                  username: $scope.username,
                  password: $scope.password
            }
        });

我一开始没有想过要传递用户名和密码。另外,是的,我将参数从parameters改为params。它工作得很好。你不能只传递$scope.username和$scope.password。它说$scope没有定义。最好的方法是更改getData函数定义以包含参数,然后在控制器中调用$scope.credentials=AppService.getData$scope.username,$scope.password;
return $http({
            method: 'POST',
            url: 'http://www.example.com/api/parent',/*should be http://www.example.com/api/parent?username=username&password=password */
            parameters: {     
                  username: $scope.username,
                  password: $scope.password
            }
        });