AngularJS $ http.get产品

时间:2014-08-14 14:54:02

标签: php mysql angularjs

我在angularjs创建了我的新店。在那里我有一个名为store的功能,它可以获取我的所有产品。在开始我刚刚写了所有产品,但现在我想从mysql数据库中获取它们。我认为问题出现在$ http.get中,但不知道是什么。

在我的功能看起来像这样之前:

function store() {
    this.products = [
        { num: 1, code: 'TEST', category: 'Diverse', name: 'TEST', src: "test.png", description: 'info her', price: 2, cal: 10 }
    ];
}

哪个有效。我使用$ http.get创建了下面的代码,并且该代码在我的商店中没有显示任何内容:

function store() {

    $http.get('products.php')
        .success(function(data) {
            this.products = data;
        });

}

我的products.php文件回显了这个,它编码为json:

[{"num":"1","code":"TET","category":"Diverse","name":"Test","src":"test.png","description":"Test","price":"5","cal":"10"}]

products.php文件:

require('scripts/connect.php');

$statement = $conn->prepare("select * from products");
$statement->execute();

while($row = $statement->fetch(PDO::FETCH_ASSOC)){

  foreach($row as $key => $value) {
    $prod[$key] = $value;
  }

  $main_arr[] = $prod;
}

$json = json_encode($main_arr); 
echo $json;

额外的帮助代码:

controller.js

function storeController($scope, $routeParams, DataService) {
    // get store and cart from service
    $scope.store = DataService.store;
    $scope.cart = DataService.cart;
}

app.js

storeApp.factory("DataService", function () {

    // create store
    var myStore = new store();
});

2 个答案:

答案 0 :(得分:0)

确保您injected $http {{3}}模块正确地{{3}}进入您的控制器(或服务,但您正在进行此操作)。

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

myApp.controller('storeController', ['$scope', '$http', function($scope, $http) {

    $scope.store = {products: getData()};

    function getData() {
        $http.get('products.php')
          .success(function(data) {
              return data;
        });
    }
}]);

您是否在控制台中收到任何错误?

答案 1 :(得分:0)

我真的不知道你的代码是如何工作的,但你说这段代码工作正常:

function store() {
    this.products = [
        { num: 1, code: 'TEST', category: 'Diverse', name: 'TEST', src: "test.png", description: 'info her', price: 2, cal: 10 }
    ];
}

我假设您可以以某种方式访问​​$http

要转换上述代码以使用$http,它应该是这样的:

function store() {
    var self = this;

    $http.get('products.php')
        .success(function(data) {
            self.products = data;
        });
}

希望这有帮助。