我正在嘗試實現角度版本的自動完成文本框。我找到了一些可行的例子,但沒有一個表現出我得到的行爲。角度控制器中的事件僅觸發一次
自動完成功能本身工作正常。當選擇建議的項目時,控件正確處理選擇。儘管自動完成位繼續工作,但隨後使用該控件(在自動填充框中鍵入,進行選擇)無法啓用「選定」事件/條件。
這裏是我的模塊&控制器:
var app = angular.module('myapp', ['angucomplete-alt']); //add angucomplete-alt dependency in app
app.controller('AutoCompleteController', ['$scope', '$http', function ($scope, $http) {
//reset users
$scope.Users = [];
$scope.SelectedUser = null;
//get data from the database
$http({
method: 'GET',
url: '/UserRoleAdministration/Autocomplete'
}).then(function (data) {
$scope.Users = data.data;
}, function() {
alert('Error');
})
//to fire when selection made
$scope.SelectedUser = function (selected) {
if (selected) {
$scope.SelectedUser = selected.originalObject;
}
}
}]);
我猜問題是在那裏,但我不知道它是什麼。我包括從我的觀點下面,雖然似乎沒有太多的大驚小怪:
<div class="form-group">
<div ng-app="myapp" ng-controller="AutoCompleteController">
<div angucomplete-alt id="txtAutocomplete" pause="0" selected-object="SelectedUser" local-data="Users" search-fields="RegularName" placeholder="People Search" title-field="RegularName" minlength="2" input-class="form-control" match-class="highlight"></div>
<!--display selected user-->
<br /><br />
<div class="panel panel-default" id="panelResults">
<div class="panel-heading"><h3 class="panel-title">Manage Roles for {{SelectedUser.RegularName}}</h3></div>
<div class="panel-body">
<div class="row">
<div class="col-md-2">
<img src="~/Images/avatar_blank.png" width="100%" />
</div>
<div class="col-md-4">
<div class="row">
<div class="col-md-4">Selected User:</div> <div class="col-md-6">{{SelectedUser.RegularName}}</div>
</div>
</div>
</div>
</div>
</div>
</div>
任何幫助,將不勝感激!
UPDATE
固定的錯誤亞瑟指出後,我沒有得到有關所選對象的任何信息。所以我設置頁面輸出整個對象,而不是指定的字段,我注意到我是獲得有關所選對象的信息,以及後續的嘗試。
所以這工作:{{SelectedUser}}
這並不:{{SelectedUser.Department}}
然後我看了看對象,並注意到其格式。它有「標題」和「描述」,描述內有它的鍵/值對。
所以,現在這個工程:{{SelectedUser.description.Department}}
就是這樣。
我試過你的建議,它是有道理的。但是現在當我運行它時,所選用戶根本不顯示。 – Karl
用我的決議編輯了我的問題,依靠您的回答。謝謝! – Karl