Javascript 角度类型前进指令和使用对象

Javascript 角度类型前进指令和使用对象,javascript,angularjs,Javascript,Angularjs,我正在使用一个带有angular的auto complete指令,我正在尝试稍微修改它,以便它可以查看对象的两个不同部分。让我告诉你我的意思: 这是自动完成指令- .directive('autocomplete', function($timeout){ return function(scope, iElement, iAttrs) { iElement.autocomplete({ source: function( request, resp

我正在使用一个带有angular的auto complete指令,我正在尝试稍微修改它,以便它可以查看对象的两个不同部分。让我告诉你我的意思:

这是自动完成指令-

.directive('autocomplete', function($timeout){
    return function(scope, iElement, iAttrs) {
        iElement.autocomplete({
           source: function( request, response ) {
                    var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( request.term ), "i" );
                    response( $.grep( scope[iAttrs.uiItems], function( item ){
                    return matcher.test( item );
                    }) );
            },                //scope[iAttrs.uiItems]
            select: function() {
                $timeout(function() {
                  iElement.trigger('input');
                }, 0);
            }
        });
    };
})
以下是输入-

<input type="text" ng-model="keywordHere" ng-keyup="keywordSerch()" autocomplete ui-items="allTags">
因此,这将调用服务器根据输入的内容(在每次击键中)返回前10项,因此它将返回多达10项供自动完成处理

如果我在对象内部指定一个键,这就可以很好地工作——例如,如果我指定$scope.allTags.push(index.name),则$http调用成功。因此,如果我指定.name或.id,它将返回它们,并且这个自动完成指令将非常有效

我试图实现的是能够传递对象,然后自动完成查看id和名称(在提供的示例中为index.id和index.name),然后返回完整的对象,这样我就可以在下面使用它并引用它的名称和id。因此,基本上无论用户是否键入id或名称,autocomplete将根据返回的结果(来自调用)查看其中一个,然后根据选择返回完整对象

非常感谢您的帮助。感谢您抽出时间阅读

//keyword seach function
$scope.allTags = [];
$scope.keywordSerch = function(){
    $scope.allTags = [];
    $http({
            method: 'POST',
            url : "/lessonSearch/1",
            type : "POST",
            contentType: "application/json",
            data: { keywords: $scope.keywordHere
            }
        })
        .success(function(data){
            if(data.results){
            angular.forEach(data.results, function(index) {
                $scope.allTags.push(index);

            });
        }
        });
}