我需要从ViewModel
回调函数中更新我的setTimeout
数据,但它不起作用。看起来我遇到的问题类似于当我需要在Angular之外的Angular中更新数据值然后需要调用$scope.apply()
时发生的问题,但在ExtJS'方式。
以下是代码:
Ext.define('Web.view.taskbar.clock.ClockController', {
extend: 'Ext.app.ViewController',
alias: 'controller.taskbar-clock',
init: function() {
var me = this;
// this works
var time = new Date();
me.getViewModel().data.time = time.getHours() + ':' + time.getMinutes() + ':' + time.getSeconds();
// this doesn't work
var timer = function() {
setTimeout(function() {
var time = new Date();
me.getViewModel().data.time = time.getHours() + ':' + time.getMinutes() + ':' + time.getSeconds();
timer();
}, 1000);
};
timer();
}
});
修改 更新了工作代码
Ext.define('Web.view.taskbar.clock.ClockController', {
extend: 'Ext.app.ViewController',
alias: 'controller.taskbar-clock',
init: function() {
var vm = this.getViewModel();
var timer = function() {
setTimeout(function() {
var time = new Date();
vm.set('time', time.getHours() + ':' + time.getMinutes() + ':' + time.getSeconds());
timer();
}, 1000);
}
timer();
}
});