【问题标题】:Angular JS API call using ionic framework使用离子框架的 Angular JS API 调用
【发布时间】:2017-04-12 21:39:47
【问题描述】:

我正在使用 Ionic 框架开发一个混合移动应用程序,在应用程序中我有一个登录屏幕。用户输入用户 ID 和密码后,我必须使用用户凭据进行 API 调用。

API 被组织成一组模块和方法,可以通过构建模块和方法的正确组合来调用这些模块和方法,以及转换为键值格式的 JSON 数组的任何随附数据。

这里的API方法是authenticateUser,因为我必须以键值格式在子数组中附加电子邮件和密码,但是当我尝试附加它时:

angular.toJson({'email':name,'password':pw}) 

它是这样转换的: {\"email\":\"EmailID@dfd.com\",\"password\":\"PassWd\"}"

在方法中:authenticateUser&data={\"email\":\"EmailID@dfd.com\",\"password\":\"PassWd\"}"

我的要求是这样的:

authenticateUser&data={"email":"EmailID@dfd.com","password":"PassWd"}

如何实现这一点以及如何使用 ionic 框架实现密码加密?

提前谢谢你。

【问题讨论】:

  • 您应该使用POST方法登录,您不需要使用angular.toJSon只需发布您的表单数据
  • $http.get(baseURL + "module=auth&method=authenticateUser&data=", { params: {"email": name, "password": pw}, }) 。我这样使用不理解这个问题,它抛出一个警告 /*call_user_func_array() 期望参数 2 是数组,在 */ 中给出 null。 API 方法是一个 get 方法,这就是我使用 $http.get 的原因。
  • 嗯,您应该在登录时使用 POST。毕竟您是在发布表单。
  • 我可以获取任何用于离子形式的 API 调用的示例代码吗!!!

标签: angularjs ionic-framework


【解决方案1】:

这里有一个您要求的代码示例。它是西班牙语的,但你会明白的。

    <form class="form" name="form" novalidate ng-submit="form.$valid && login(); form.$submitted = true">
      <div class="list">
        <label class="item item-input" ng-class="{ 'has-error': (form.$submitted && form.email.$invalid)}">
          <input type="text" placeholder="Usuario" ng-model="auth.email" name="email" required>
        </label>
        <label class="item item-input" ng-class="{ 'has-error': (form.$submitted && form.password.$invalid)}">
          <input type="password" placeholder="Contraseña" ng-model="auth.password" name="password" required>
        </label>
        <button type="submit" class="button button-block button-positive">
          Ingresar
        </button>
      </div>
    </form>

如您所见,我有两个输入。一个用于电子邮件,一个用于密码。 ng-model 指向一个名为“auth”的对象,其中包含“email”和“password”。我的控制器:

myApp.controller('AuthLoginCtrl', function($scope, Auth, $state, $localStorage, Comun, $ionicPlatform) {
  $scope.auth = {
    email: null,
    password: null
  };
  $scope.login = function() {

    Auth.login($scope.auth).$promise.then(function(response) {
      if(response.user) {
        $localStorage.user = response.user;
        $state.go('estadisticas.unidad.general');
      }else {
        $scope.error = true;
      }
    });
  };
});

这里你可以看到我提到的auth对象,加上登录功能。此函数使用 Angular 资源 (Auth) 并调用它的登录函数。它的作用是向某个 URL(在 Auth 资源中定义)发出 POST 请求,并发布如下所示的表单数据:

{
  email: 'bla@bla.com',
  password: 'blabla',
}

此数据已发布到我的后端,它会尝试进行身份验证等。如果您有不明白的地方,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-29
    • 2015-10-28
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 1970-01-01
    相关资源
    最近更新 更多