[英]How to pass whole object to input from md-autocomplete angular 4
[英]Unable to get the value from an array of object in md-autocomplete
我有一個對象數組,現在我正在嘗試選擇數據。 封閉文件是我在控制台中獲取的對象的快照。
即使用戶通過自動完成對象中的對象使用empid或empname或emailid搜索,我也想獲取emailid。 但是,當我開始在md-autocomplete
輸入內容時,我無法檢索到此信息,我的屏幕閃爍並且從沒有給我過濾器列表。
更新的代碼:
<md-autocomplete flex required
md-search-text="searchText"
md-input-name="autocomplete"
md-search-text-change="searchTextChange(searchText)"
md-items="item in search(searchText)"
md-item-text="item"
md-floating-label="Reporting Manager">
<md-item-template>
<span md-highlight-text="searchText" md-highlight-flags="^i">{{item.empname}}</span>
</md-item-template>
</md-autocomplete>
這是我的javascript search()
函數
$scope.search = function(text){
var deferred = $q.defer()
var result = []
var resolve = function(reportingManager){
//console.log(reportingManager)
angular.forEach(reportingManager,function(val){
//console.log(val)
angular.forEach(val,function(value){
//console.log(value)
if(value.empid.toUpperCase().includes(text.toUpperCase())
|| value.empname.toUpperCase().includes(text.toUpperCase())){
result.push(value.empname)
//console.log(result)
}
})
})
deferred.resolve(result)
}
if(text){
resolve(reportingManager? reportingManager: [])
}else{
resolve([]);
}
return deferred.promise
}
reportManager是一個數組數組,其中包含我包含在快照中的對象。 任何對此的幫助將是非常可觀的
問候
首先,我要感謝@ Titus在我身邊和我一起解決我的問題。
問題不僅與Javascript代碼有關,也與CSS有關。 由於經過多次試驗,我試圖將md-autocomplete
放入模式彈出窗口中,因此出現了自動完成建議,但它落后於模式。 這是工作代碼
$scope.search = function(text){
var deferred = $q.defer()
var result = []
var resolve = function(reportingManager){
//console.log(reportingManager)
angular.forEach(reportingManager,function(val){
//console.log(val)
angular.forEach(val,function(value){
//console.log(value)
if(value.empid.toUpperCase().includes(text.toUpperCase())
|| value.empname.toUpperCase().includes(text.toUpperCase())){
result.push(value.emailid)
//console.log(result)
}
})
})
deferred.resolve(result)
}
if(text){
resolve(reportingManager? reportingManager: [])
}else{
resolve([]);
}
return deferred.promise
}
HTML:
<div class="md-virtual-repeat-container">
<md-autocomplete flex required
md-search-text="searchText"
md-input-name="autocomplete"
md-search-text-change="searchTextChange(searchText)"
md-items="item in search(searchText)"
md-item-text="item"
md-selected-item="selectedManager"
md-floating-label="Reporting Manager">
<md-item-template>
<span md-highlight-text="searchText" md-highlight-flags="^i">{{item}}</span>
</md-item-template>
</md-autocomplete>
</div>
Psst **如果您嘗試在彈出窗口中獲取自動完成功能,請不要忘記為z-index
設置較高的值
並在控制器中包含$q
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.