Мне нужно обновить данные ViewModel
изнутри функции обратного вызова setTimeout
, но это не сработает. Похоже, я столкнулся с проблемой, подобной тому, что происходит, когда мне нужно обновить значение данных в Угловом внешнем угловом, а затем нужно позвонить $scope.apply()
, но в режиме ExtJS.Установить значение данных ViewModel из внутреннего таймаута не обновляет вид
Вот код:
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();
}
});
Edit: Обновленный рабочий код
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();
}
});
Я забыл упомянуть: ExtJS 5,1 –