2017-08-06 16 views
-1

私はanuglarjs工場で再利用可能な自動検索をしようとしています。 私のコードはここにあります。しかし、不幸にもエラーが発生します。 Googleとここでスタックのオーバーフローで検索しようとしましたが、それを修正できません。

(function() { 
 
    'use strict' 
 
    angular.module('App').factory('LoadFormActivity', ['$http', '$q', function($http, $q) { 
 

 
    function NGAutoCompleteSearch(url, val) { 
 

 
     var def = $q.defer(); 
 

 
     $http.get(url, { 
 
     params: { 
 
      searchvalue: val 
 
     } 
 
     }).then(function(response) { 
 
     debugger 
 
     def.resolve(response); 
 
     }, function(response) { 
 
     debugger 
 
     def.reject(response); 
 
     }); 
 

 
     return def.promise; 
 
    }; 
 

 
    return { 
 
     NGAutoCompleteSearch: NGAutoCompleteSearch 
 

 
    }; 
 

 

 
    }]); 
 

 
})(); 
 

 
//Controller. 
 

 
(function() { 
 

 
    'use strict' 
 
    angular.module('App').controller('ServicesMasterCtrl', ['$timeout', '$scope', '$filter', '$http', 'NGAutoComplete', 'LoadFormActivity', function($timeout, $scope, $filter, $http, NGAutoComplete, LoadFormActivity) { 
 

 
    $scope.FormService.AutoSearch = {}; 
 

 
    $scope.FormService.AutoSearch.Search = function(id) { 
 

 
     LoadFormActivity.NGAutoCompleteSearch('/Assets/AssetsAPI/GetServiceRecord', id).then(
 
     function(data) { 
 
      console.log(JSON.stringify(data)); 
 
     }); 
 
    }; 
 
    }]); 
 
})();
<div ng-controller="ServicesMasterCtrl"> 
 
    <md-autocomplete md-items="item in FormService.AutoSearch.Search(id)" md-selected-item="FormService.AutoSearch.selectedItem" md-search-text-change="FormService.AutoSearch.SearchChanged(id)" md-search-text="id" md-min-length="2" md-delay="500" placeholder="Search service by id or name" 
 
    md-item-text="item.id" md-no-cache="true"> 
 
    <md-item-template> 
 
     <span class="item-title">Id:{{item.id}}       </span><span class="item-metadata"> 
 
    <span class="item-metastat">Service: <strong> {{item.servicename}} </strong></span> 
 
     <md-icon md-svg-icon="octicon-repo.svg"></md-icon><span class="item-metastat" ng-if="!!item.montlyrental">MonthlyRental: <strong> {{item.montlyrental}} </strong></span><span class="item-metastat" ng-if="!!item.activationdate">ActiveDate: <strong> {{item.activationdate | ConvertToDate | date: 'dd-MMM-yyyy'}} </strong></span></span> 
 
    </md-item-template> 
 
    <md-not-found>No matching items found...</md-not-found> 
 
    </md-autocomplete> 
 
</div>

誰かがここに私を助けてくださいすることができます。

答えて

1

私はLoadFormActivityサービスを簡素化します。その余計な約束は必要ありません。 TypeError例外:

function NGAutoCompleteSearch(url, val) { 

    return $http.get(url, { params: {searchvalue: val} }); 

} 
+0

**ジェームズ**は、私はまだエラーを取得し、未定義の 'を' プロパティを読み取ることができません。角度のある素材の自動補完や$ httpリクエストのエラーが原因かどうかは分かりません。誰か知っていれば、私にここで教えてください。ありがとう – Scavenger

+0

コントローラの 'loadFormActivity.'と' loadFormActivity.NGAutoCompleteSearch'の値をログアウトすることをお勧めします – user2954463

関連する問題