php - Angularjs如何获取服务中$http响应返回的Json格式的解析数据

标签 php mysql angularjs angularjs-directive angularjs-scope

首先我想澄清,我没有使用网络服务访问数据。 我的数据库(php)和 angularjs UI 位于同一服务器上。

在 AngularJs 服务中,我向 interface.php(Database) 发送 http Get 请求,它返回 json 格式。我不知道如何实际解析数据并将其发送到 Controller ?

这里清晰的代码:)

var app=angular.module("app.chart.ctrls",['ngSanitize']);

Controller

 app.controller("registrationCtrl",["$scope","$location","logger","registerService",function($scope,$location,logger,registerService){

          $scope.data= registerService.getYears();
       **how to parse the data is it correct format or not ? in Controller** 
  } 

**Service**
app.factory('registerService', function ($http,$q,$log) {
 return {
        getYears:function () {


            var deferred = $q.defer();
           $http({
                 method : "GET",
             url : "interface.php", 

                 }).success(function(data){

                     **** How to Return the data from here to Controller ***

                 })

        },

    }
});

接口(interface).php

最佳答案

1 - 首先在 Controller 中定义一个对象,稍后您可以将其用作 http 响应的存储,如下所示:

         app.controller("registrationCtrl",["$scope","$location","logger","registerService",function($scope,$location,logger,registerService){

      $scope.data = {};
      // fire your servise function like this : 
      registerService.getYears($scope);

}

2- 在您的服务中:

        app.factory('registerService', function ($http) {
        return {
         getYears:function (scope) {// scopes comes from your controller
        $http({method : "GET",url : "interface.php"})
        .success(function(data){
                scope.data = data;!!!!!!
             })
             }
          }
       });

到目前为止已经完成并且可以工作了;

但是如果你想使用某种 promise ,你可以这样做:

在你的 Controller 中:

     .
     .
     .
     $scope.data = {};
      // fire your servise function like this : 
       var promise = registerService.getYears();
           promise.then(function(msg){
            $scope.data = msg.data[0];

           });
     .
     .
     .

在您的服务中:

  app.factory('registerService', function ($http) {
        return {
         getYears:function () {
          var promise =  $http({method : "GET",url : "interface.php"});
          }
           return promise ;
       });

关于php - Angularjs如何获取服务中$http响应返回的Json格式的解析数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306069/

相关文章:

php - 是否从表 X、Y 和 Z 中查找按创建日期排序的最新 N 个项目?

php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

javascript - AngularJS可关闭的div点击后不关闭

javascript - 如何从 Angular Yeoman 生成器中的列表中查看单个项目?

php - 无需刷新页面即可获取复选框值

php - 尝试在 laravel valet 上加载我的 laravel 项目时出错

Javascript/Ajax(无 jquery!)onreadystatechange 保持 1

PHP MySQL : How to get ambiguous column result from joined table

MySQL 在正确位置添加Where 子句

javascript - Controller 属性更改不会影响某些指令的整个绑定(bind)属性