2
我試圖使用角度材質md-autocomplete
指令來顯示兩種不同的東西,一種是熱門產品,另一種是自動建議,但您只能使用一種md-item
迭代,所以我決定使用ng-repeat
。我使用了三個循環,第一個循環來自getSuggestion()
函數返回的數組,該函數本身包含兩個數組:一組熱門產品對象和一組建議對象。 問題是,現在當我使用上下鍵來選擇一個項目時,它選擇的是一個項目列表而不是單個項目,當我點擊一個特定的項目時,我在搜索框中得到類似[object Object],[object Object],[object Object],[objct Object],[object Object],[object Object]
的東西當我使用md-item
迭代流行產品或建議數組時,我會得到一個項目字符串。在md-autocomplete中使用ng-repeat顯示自動建議和熱門產品
我的數據是這樣的:
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>
這就是當我將鼠標懸停在一個建議碰巧它突出suggesitons,而不是個人的建議列表:
導致這個: