Http-сбой при разборе в angular 7 - PullRequest
       9

Http-сбой при разборе в angular 7

0 голосов
/ 26 февраля 2019

Я реализую раскрывающийся список кендо и пытаюсь вызвать API, когда пользователь пытается выполнить поиск, вводя символы.Я вижу, что выполняется вызов API, и API возвращает отфильтрованные значения, однако данные не связываются.

Я вижу, что происходит ошибка и выполняется блок err.Ошибка гласит, что

Ошибка Http при синтаксическом анализе для http://localhost:54455/fund/HFRFundSearch?term=as

Может кто-нибудь сказать мне, в чем проблема.Это потому, что API возвращает объект

Вот мой код

 <label for="inputFax" class="col-md-2  col-form-label header">Third Party Database Feed</label>
 <div class="col-md-3">
       <div *ngIf="!EditMode">{{FundDetails.HFRFundName}}</div>
         <kendo-dropdownlist style="width:350px" [(ngModel)]="HFRFunds" [data]="HFRFunds"  [filterable]="true" [valuePrimitive]="true"   textField="text" valueField="id"  (filterChange)="handleFilter($event)"></kendo-dropdownlist>
 </div>

компонент

 handleFilter(value) {
        if (value.length >= 2) {
            this.fundService.getHFRFund(value)
            .subscribe(data => {
                this.HFRFunds = data;
            },
                err => {
                    this.Error = 'An error has occurred. Please contact BSG';
                },
                () => {
                });
        }
    }

service

 constructor(
            private http: HttpClient,
            private config: AppConfig)
    { }

 getHFRFund(value : string) {
                let pars = new HttpParams();
                pars = pars.append('term', value.toString());
                const url = this.config.api.hfrFundSearch;
                return this.http.get(url, { params: pars, withCredentials: true });
        }

api.

[HttpGet]
        [AuthorizationLevel(AuthAccessLevel.Read)]
        public object HFRFundSearch(string term)
        {
            try
            {
                var hfrFunds = new List<object>();
                if (!string.IsNullOrEmpty(term))
                {
                    term = term.ToLower();
                    hfrFunds.AddRange(GetViewService<V_HFR_FUND>()
                        .Where(x => x.HFR_FUND_NAME.ToLower().StartsWith(term))
                        .Take(10)
                        .OrderBy(x => x.HFR_FUND_NAME)
                        .Select(x => new { id = x.HFR_FUND_ID, text = x.HFR_FUND_NAME })
                        .ToList());
                }

                return hfrFunds;
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
                return ex;
            }
        }

1 Ответ

0 голосов
/ 26 февраля 2019
// API
[HttpGet]
        [AuthorizationLevel(AuthAccessLevel.Read)]
        public object HFRFundSearch(string term)
        {
            try
            {
                var hfrFunds = new List<object>();
                if (!string.IsNullOrEmpty(term))
                {
                    term = term.ToLower();
                    hfrFunds.AddRange(GetViewService<V_HFR_FUND>()
                        .Where(x => x.HFR_FUND_NAME.ToLower().StartsWith(term))
                        .Take(10)
                        .OrderBy(x => x.HFR_FUND_NAME)
                        .Select(x => new { value = x.HFR_FUND_ID, text = x.HFR_FUND_NAME })
                        .ToList());
                }

                return hfrFunds;
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
                return ex;
            }
        }


    // component
     // component
    import { map } from 'rxjs/operators';

    handleFilter(value) {            
       if (value.length >= 2) {                     
          this.fundService.getHFRFund(value).subscribe(
                data => {
                 this.HRFunds = data;
           });           
        }
    }
...