组件控制器不在$ onChanges中更新

时间:2016-11-16 05:56:10

标签: angularjs

我正在创建一个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组件中执行某些操作来触发从控制器到视图的更新?它似乎工作一次,但只有一次?

1 个答案:

答案 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;
}