在组件中使用属性绑定时,传递给控制器的数据始终是字符串。但是,我正在尝试传递一个整数,并且无法将其从字符串转换并使用转换棒。
我尝试将数据保存为整数,$onInit()
但在此函数之外,数据将返回其原始状态(类型和值)。我理解组件一般不应该修改传入的数据,但是由于这是一个属性绑定,并且数据是按值传递的,所以我认为不适用。
function IntegerBindingController() {
this.$onInit = function() {
// Assuming 'number="2"' in the HTML
// This only changes the data inside this function
this.number = parseInt(this.number)
this.typeofNumber = typeof this.number // evaluates to 'number'
this.simpleAdd = this.number + 5 // evaluates to 7
this.dataAdd = this.numberOneWay + 5
console.log(this)
}
this.test = function() {
// this.number is a string inside this function
this.typeofNumber = typeof this.number // evaluates to 'string'
this.simpleAdd = this.number + 5 // evaluates to 25
}
}
我可以通过将数据复制到控制器上的新属性来解决这个问题,但我很好奇是否有人可以解释这里发生了什么。有关该问题的工作示例,请参阅此Plunker。