我在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();
});
答案 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;
});
}
希望这有帮助。