【发布时间】:2017-09-28 00:57:09
【问题描述】:
我在 Eclipse 上有一个简单的 Web 项目,其中包含三个主要文件:“controller.js”、“home.html”和“array.php”。
.php 文件应回显以 JSON 字符串编码的 php 数组:
<?php
$arr = array(array(title => "hello", author => "me"), array(title =>
"hello2", author => "me"));
echo json_encode($arr);
?>
然后,“controller.js”中的控制器应该接收这个 JSON 字符串并将其存储到 JavaScript 数组中:
angular.module('app_controller')
.controller('control', ['$scope', '$http', function($scope, $http) {
this.read = function() {
$http.get('array.php')
.then(function (response) {
$scope.js_array = response.data;
});
};
this.read();
}])
最后,我将访问“home.html”中的数组元素:
<div data-ng-controller="control as ctrl">
<ul>
<li data-ng-repeat="elem in js_array">
<h2>title: {{ elem.title }}</h2>
</li>
</ul>
</div>
但是...它不起作用。 Chrome 控制台没有显示任何错误,但看起来我正在访问一个空数组并且我的标题没有出现。我很确定我正确地编码了 JSON,所以我认为我无法将控制器与 .php 文件连接起来。有什么建议吗?
【问题讨论】:
-
试试这个
<li data-ng-repeat="elem in ctrl.js_array"> -
@Hadi 同样是同一件事.. OP 已经将
js_array绑定到$scope所以应该没问题.. -
你能把
console.log(response.data)放在.then里面看看,服务器返回数据正确吗? -
谢谢,但没有任何改变。
-
@Lyil 你在控制台看到
data了吗?
标签: javascript php angularjs arrays json