2014-12-08 14 views
6

Hãy xem xét những điều sau đây trong cơ thể của tập tin html tôi:Cập nhật mô hình từ một typeahead-on-chọn

<html> 
... 
<body> 
... 
<div class='container-fluid' ng-controller="TypeaheadCtrl"> 
<input type="text" ng-model="selected" typeahead="name as entry.name for entry in entries | filter:{name: $viewValue} | limitTo:8" 
       typeahead-on-select='onSelect($item, $model, $label)' 
       class="form-control"> 

{{selection_made}} 
</div> 
<body> 
</html> 

nơi entries được dân cư ở một nơi khác. Và sau đó điều này trong bộ điều khiển:

angular.module('ui.bootstrap.demo').controller('TypeaheadCtrl', function($scope, $http) { 
     ... 
     $scope.onSelect = function ($item, $model, $label) { 
       $scope.$selection_made = $item; 
     }; 
... 
}); 

Tôi có chức năng tự động hoàn tất, nhưng cuộc gọi lại lựa chọn dường như không hoạt động tốt. Tôi đã mong đợi {{selection_made}} để hiển thị mọi thứ được chọn, nhưng thay vào đó, văn bản theo ngữ nghĩa {{selection_made}} được hiển thị. Tại sao? Tôi đang thiếu gì?

Lưu ý: Tôi đã sử dụng this answer để tham khảo.

+0

Cảm ơn @Satpal, vâng tôi đã cố gắng mà không may mắn (tôi nhận được chính xác những điều tương tự) –

+0

Nếu bạn đặt một trình gỡ lỗi trên $ scope.selection_made = $ item; và bạn kiểm tra mục, mẫu và nhãn. Chúng có chứa thông tin mà bạn mong đợi không? – KreepN

+0

@KreepN Có, tôi vừa kiểm tra và thực hiện. Ngoại trừ mô hình, có vẻ như là "không xác định". –

Trả lời

1

Hãy thử điều này,

angular.module('ui.bootstrap.demo').controller('TypeaheadCtrl',function($scope, $http) { 
    ... 
    $scope.onSelect = function ($item, $model, $label) { 
      $scope.$selected = $item; 
    }; 
... 
}); 
Các vấn đề liên quan