Строка и число в угловом понимании неправильно - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть Entity:

export class Item {
  name: string;
  value: number;
}

И mock-класс:

export const ITEMS: Item[] = [
  {
    name: 'Локальный сервер',
    value: 1
  },
  {
    name: 'Удаленный сервер',
    value: 2
  }
];

В моем шаблоне:

<li class="list-group-item"  *ngFor="let item of itemsList">
                  <input type="radio" [(ngModel)]="radioSelected" name="list_name" value="{{item.value}}" (change)="onItemChange(item)"/> {{item.name}}
                </li>

И в моем контроллере:

onItemChange(item) {
    this.getSelecteditem();
  }

  getSelecteditem() {
    this.radioSel = ITEMS.find(Item => Item.value === parseInt(this.radioSelected.toString(), 10));
  }

Мне не нравится эта часть: parseInt (this.radioSelected.toString () , но просто this.radioSelected без parseInt и .toString не работает. Почему? Я хочу передать и получить только число, а не строку! Как я могу это сделать?

1 Ответ

0 голосов
/ 27 декабря 2018

Не могли бы вы попытаться передать значение выбранного элемента:

onItemChange(item: ITEM) {
   this.getSelecteditem(item); // pass in the item here
}

, а затем найти элемент на основе значения этого элемента:

getSelecteditem(item: ITEM) {
    this.radioSel = ITEMS.find(Item => Item.value === item.value); // compare against the param passed in
}

Я бы также порекомендовалиспользовать набор текста, как я сделал, будет намного проще и веселее :))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...