Как мне использовать значение локальной переменной в angular2?

1

У меня есть простая функция, которая возвращает мне значение как число. Это значение в основном, сколько предметов в тодолисте является неполным.

testFunction() {
    var a = 0;
    this.todos.forEach(function(elem, i) {
                    if(elem.status === true) {
                        a += 1;
                    }
                })
                console.log(a); // gives correct length
    }

Теперь у меня есть

Total todo Items  Left <span>{{a}}</span> //Nothing coming here?

Как зарегистрировать значение a в шаблоне

  • 0
    Сделайте это свойством вашего компонента
  • 0
    Вам нужно определить переменную как private / public вне функции, как член вашего класса.
Показать ещё 6 комментариев
Теги:
angular

1 ответ

1
Лучший ответ

Угловое может привязывать данные к шаблону только с использованием собственных полей данных компонента. Таким образом, ваш код должен быть следующим.

testFunction() {
    this.a = 0;
    this.todos.forEach(function(elem, i) {
        if(elem.status === true) {
            this.a += 1;
        }
    }.bind(this))
    console.log(a); // gives correct length
}

UPD Если вы хотите использовать синтаксис ES6, вам даже не нужно связывать this вы можете просто использовать функцию стрелки, которая передает this из родительской области:

testFunction() {
    this.a = 0;
    this.todos.forEach((elem, i) => {
        if(elem.status === true) {
            this.a += 1;
        }
    })
    console.log(a); // gives correct length
}
  • 0
    Зачем это связывать, сэр? Я пропустил ту часть, я думаю.
  • 1
    Посмотрите на эту ссылку developer.mozilla.org/en/docs/Web/JavaScript/Reference/…
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню