【发布时间】:2015-10-13 14:19:15
【问题描述】:
在我的代码中,我使用角度(材料)自动完成,我需要从外部 php 文件中获取数据。
HTML:
<div ng-controller="search_interest" layout="column">
<md-content class="md-padding" layout="column">
<md-autocomplete
md-selected-item="selectedItem"
md-search-text="searchText"
md-items="item in getInterest1(searchText)"
md-item-text="item.name"
placeholder="Search for a vegetable">
<span md-highlight-text="searchText">{{item.name}} :: {{item.type}}</span>
</md-autocomplete>
</div>
当我返回一个“手工制作”的 JSON 时,自动完成效果很好:
//RETURN: results [{"name":"Broccoli","type":"Brassica"}]
$scope.getInterest1 = function() {
var results = [
{
'name': 'Broccoli',
'type': 'Brassica'
}];
console.log('results', JSON.stringify(results));
return results;
};
但是当我使用 $http.get 调用相同的 JSON 时,它不会在自动完成中显示结果并且什么也没有发生。
//RETURN: results [{"name":"Broccoli","type":"Brassica"}]
$scope.getInterest2 = function() {
$http.get("../inc/users/search_interest.php?query=" + $scope.searchText)
.success(function(results) {
//$scope.interest = results;
console.log('results', JSON.stringify(results));
return results.data;
});
};
但我可以在控制台中看到结果是相等的。
在我的 php 文件(由 $http.get 调用)中,我返回带有 json-encode 的 JSON:
$row_set = array('name' => 'Broccoli', 'type'=> 'Brassica');
echo json_encode(array($row_set));
也许 php json_encode 返回格式错误的 json?
谢谢
【问题讨论】:
-
echo json_encode($row_set);就够了。 -
是的,我知道就够了,但让我解释一下,我使用了上面代码中所示的方法,否则我会得到结果 {"name":"Broccoli","type":"Brassica"}控制台(所以没有 [ ])。这是一次尝试。但也 echo json_encode($row_set);自动完成不起作用
标签: php json angularjs autocomplete