我正在创建一个Angular 1.5组件,而我却陷入困境。我正在通过$onChanges
观看对绑定输入的更改。当我在ctrl.$onChanges = function (changesObj) {
if (/* test to see if new data is invalid */) {
ctrl.test = 2;
console.log(2);
// return;
} else {
var newData = changesObj.data.currentValue;
ctrl.test = 1;
console.log(1);
}
};
上的功能底部控制数据时,一切看起来都不错,但在我看来它并没有改变。
2
(8) 1
我在if语句中控制了日志记录,我得到了一堆日志。第一个是正确的,正如预期的那样,但其余的都是假的。上面的日志很简单:
test
但是,当我在视图中显示ctrl.test
时,它始终为2.我甚至控制台在功能底部记录了String str = "string";
String subString;
for (int k = 1; k <= str.length(); k++) {
for (int i = 0; i+k <= str.length(); i++) {
subString = str.substring(i,i+k);
System.out.println(subString);
}
}
的状态,并且它已经在那里很好,但视图保持2。
我是否需要在Angular 1.5组件中执行某些操作来触发从控制器到视图的更新?它似乎工作一次,但只有一次?
答案 0 :(得分:0)
试试这个,希望它有所帮助
function updateValue(data){
}
function componentController() {
function setType() {
// you will get changes on this object
// do your stuff here
console.log(this)
updateValue.apply(this,[this.data])
}
this.$onInit = setType;
this.$onChanges = setType;
}