свойство номера объекта преобразуется в строку в Angular2 - PullRequest
0 голосов
/ 10 марта 2019

У меня есть модель с двумя свойствами, одним из которых является число.

export class Ingredient
{
    constructor(public name:string,public amount:number)
    {

    }
}

Однако каждый раз, когда я пытаюсь прибавить к сумме, я получаю конкатенацию. Странно то, что когда я пытаюсь выполнить parseInt со значением, я получаю сообщение об ошибке, я не могу передать число в parseInt, но typeof возвращает строку для свойства.

addIngredient(ingredient: Ingredient)
{
    let ingredientInList=this.ingredientInList(ingredient);
    //alert(ingredientInList);
    if(ingredientInList!==false)
    {
       // alert(typeof(this.ingredients[ingredientInList].amount));

      this.ingredients[ingredientInList].amount=this.ingredients[ingredientInList].amount + ingredient.amount;
    }
    else
    {
        //alert(typeof(ingredient.amount));

        this.ingredients.push(ingredient);
    }
    this.ingredientsChanged.emit(this.ingredients.slice());
}

Поэтому, когда я запускаю приведенный выше код, количество рядом с ингредиентом объединяется с предыдущим количеством (при условии, что он уже нашел аналогичный ингредиент).

Есть идеи?

1 Ответ

0 голосов
/ 10 марта 2019

Пожалуйста, убедитесь, что тип обоих «сумма» number не строка.

в противном случае, вы можете использовать этот код ниже для анализа числа-

this.ingredients[ingredientInList].amount = parseInt(this.ingredients[ingredientInList].amount) + parseInt(ingredient.amount);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...