Понимание образца Canjs Control
Смотрю на образец Canjs для контроля.
TaskStriker = can.Control({
"{task} completed": function(){
this.update();
},
update: function(){
if ( this.options.task.completed ) {
this.element.addClass( 'strike' );
} else {
this.element.removeClass( 'strike' );
}
}
});
var taskstriker = new TaskStriker({
task: new Task({ completed: 'true' })
});
В этом случае, что именно является объектом задачи? Я пытался создать задачу с помощью can.Construct, но она не вызывает функцию обновления при изменении значения.
Может кто-нибудь объяснить, пожалуйста, немного об этом?
2 ответа
can.Construct не реализует наблюдаемые свойства.
Объектом задачи будет can.Map ( http://canjs.com/docs/can.Map.html) или can.Model ( http://canjs.com/docs/can.Model.html). С этими двумя вы можете наблюдать изменения на объекте и, таким образом, запускать код обновления.
Несколько вещей выделяются: (1) Ваш объект задачи имеет completed
установить до taskstriker
инициализируется; и (2) для создания экземпляра can.Control или одного из его подклассов необходимо передать элемент DOM в качестве первого аргумента и объект параметров в качестве второго.