如何在angular2中使用局部变量值?

时间:2017-07-31 12:56:07

标签: javascript angular

我有一个简单的函数,它将值作为数字返回给我。这个值基本上是一个todolist中有多少项不完整。

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的值

1 个答案:

答案 0 :(得分:1)

Angular只能使用组件的自己的数据字段将数据绑定到模板。所以你的代码需要如下

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的箭头函数: / p>

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