Chức năng đánh máy trong giao diện người dùng AngularJs có vẻ đơn giản và mạnh mẽ tuy nhiên tôi đã cố gắng tìm ra cách kết hợp được thực hiện trên các ký tự hàng đầu. Ví dụ: nếu tôi nhập 'A' trong hộp nhập liệu, tôi muốn xem tất cả các trạng thái bắt đầu bằng 'A' và không phải tất cả các trạng thái có chứa 'A' trong tên. Tôi đã tìm kiếm một vài ngày về điều này và dường như Angular có khái niệm về một bộ lọc tùy chỉnh có một 'bộ so sánh'. Các tài liệu về điều này có một ví dụ đơn giản không hiển thị cú pháp chính xác để thực hiện một bộ so sánh. :Khớp chữ trên giao diện người dùng AngularJs trên các ký tự hàng đầu
<div>Selected: <span>{{selected}}</span></div>
<div><input type="text" ng-model="selected" typeahead="name for name in states | filter:selected"></div>
Các javascript cơ bản trông như thế này
angular.module('firstChar', ['ui.bootstrap']);
function TypeaheadCtrl($scope) {
$scope.selected = undefined;
$scope.states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Dakota', 'North Carolina', 'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'];
}
Tôi có một plunker đây http://plnkr.co/edit/LT6pAnS8asnpFEd5e6Ri
Vì vậy, thách thức trong một nutshell là để có được AngularUI typeahead để phù hợp chỉ trên các nhân vật hàng đầu.
Bất kỳ trợ giúp hoặc ý tưởng nào về điều này sẽ được đánh giá cao.
WOW ! Cảm ơn! Dường như làm việc hoàn hảo. Đưa ra một ví dụ điển hình về các khái niệm và cú pháp chuỗi của Angular. –
Một câu hỏi là ... Làm cách nào để xác định 'trạng thái' trong hàm startsWith? Tôi nhận ra nó đang lặp qua các trạng thái nhưng làm thế nào nó xuất hiện với tên/đối tượng 'trạng thái'. Tôi đang cố gắng sử dụng mã này trong một ví dụ thế giới thực hơn và nó không hoạt động. –
Câu trả lời cho câu hỏi của tôi là 'trạng thái' trong ví dụ là giá trị hiện tại từ mảng được sử dụng để điền danh sách typeahead. Vấn đề của tôi là tôi đang sử dụng một đối tượng để điền vào các typeahead vì vậy tôi có thể nhận được 'id' cho giá trị được chọn. Góc lặp đi lặp lại thông qua đối tượng và chuyển mỗi thành viên của đối tượng đến hàm so sánh để so sánh chuỗi. –