GET 请求到前端服务器和 return JSON 对象

GET request to front end server and return JSON object

更新: 我已经弄清楚并解决了这个问题。做我希望在这里完成的事情。执行以下操作:

var app = angular.module('myApp', []);

app.factory('server', ['$http', function($http) {
  return {
    getResults: function(blah) {
      var req = {};
      req.blah = blah;

      return $http({
        method: 'GET',
        url: 'blah',
        params: req
      });
    }
  }
}]);

app.controller('myCtrl', ['$scope', 'server', function($scope, server) {

  $scope.getResults = function() {
    server.getResults($scope.blah)
      .success(function(data) {
        $scope.results = data;
      }).error(function(data) {
        $scope.results = {
          "Blah": "something"
        };
      });
  };
}]);

原文post: 我的目标是让 UI 向 RESTful 服务器发出 GET 请求,并在 return 中获得 JSON。所以在我的 myApp.js 中,我有:

var app = angular.module('myApp', []);

app.factory('server', ['$http', function($http){
    var server = {};

    server.getResults = function(blah) {
      return $http({
        method: 'JSONP', 
        url: 'blah'
      });
    }

    return server;
}]);

app.controller('MainCtrl', ['$scope', function($scope, server){
    $scope.results = server.results;
}]);

我应该澄清一下,我应该从服务器获得的响应是​​一个 JSON 对象,如下所示:

var blah = {"Blah": "something"}

你的js应该是这样的:

var app = angular.module('myApp', ['ui.router']);

app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider){

    $stateProvider.state('home', {
        url: '/home',
        templateUrl: '/home.html',
        controller: 'MainCtrl',
    })
    $urlRouterProvider.otherwise('home');
}]);

app.factory('frontend_server', ['$http', function($http){    
   return { 
      getResults = function(colors, stops) {
      var results = null;
      var req = {
            colors:colors,
            stops: stops
           }
      return $http({
        method: 'GET', 
        url: 'blah',
        params : req
      });
    }

  }
}]);

app.controller('MainCtrl', ['$scope','frontend_server', function($scope, frontend_server){
    $scope.colors = null;
    $scope.stops = null;
    frontend_server.getResults($scope.colors, $scope.stops).success(function(data){
             $scope.results = = data;

      }).error(function(data){
            $scope.results = = data;
       });;
}]);