我正在尝试使用角度材料md-autocomplete
指令来显示两种不同的东西,一种是流行产品,另一种是自动建议,但您只能使用一种md-item
进行迭代,所以我决定使用ng-repeat
. 我在一个数组上使用了三个循环,第一个循环是从函数返回的,该getSuggestion()
函数本身包含两个数组:一个流行产品对象数组和一个建议对象数组。问题是,现在当我使用向上和向下键选择一个项目时,它选择的是项目列表而不是单个项目,当我单击特定项目时[object Object],[object Object],[object Object],[objct Object],[object Object],[object Object]
,我在搜索框中得到类似的东西而不是当我使用md-item
迭代流行产品或建议数组时,我会得到项目字符串。
我的数据是这样的:
Object {popular_products: Array[3], suggestion: Array[0], cat_suggestion: Array[0]}
这是我在控制器中的代码:
$scope.getSuggestions = function(query) {
$scope.query = query;
return $http.get(url + "?q=" + $scope.query + "&ssize=6&psize=3")
.then(function(response) {
if (typeof response.data === 'object') {
console.log(response.data);
//return $q.resolve(response.data)
return $q.resolve([response.data.suggestion, response.data.popular_products]);
} else {
return $q.reject(response.data); // invalid response
}, function(response) {
return $q.reject(response.data); // Error
});
};
这是我的看法:
<md-autocomplete
md-no-cache="true"
md-search-text= "query"
md-items="sugg in getSuggestions(query)"
md-item-text="sugg.suggestion"
md-delay="0"
md-min-length="1"
placeholder="Search">
<md-item-template>
<div ng-if="$index == 0">
<div ng-value="item.suggestion" ng-repeat="item in sugg">{{item.suggestion}}</div>
</div>
<div ng-if="$index==1">
<span>
<b>Popular products:</b>
<div ng-value="pp.price" ng-repeat="pp in sugg ">
{{pp.price}}
</div>
</span>
</div>
</md-item-template>
</md-autocomplete>
当我将鼠标悬停在一个建议上时会发生这种情况,它会突出显示建议列表而不是单个建议:
这导致了这一点: