estoy recibiendo el error:no puede extenderse backbone.events en CoffeeScript
Uncaught TypeError: Cannot read property 'constructor' of undefined
Al declarar la clase siguiente:
class ViewHelpers extends Backbone.Events
puedo usar la misma sintaxis para extender Backbone.Router , Vistas, modelo, etc. Aquí está el código JavaScript compilado el que he escrito en un registro rápido para asegurarse de que estaba allí Backbone.Events
__t('views').ViewHelpers = (function(_super) {
#how i know it is definied here
console.log(_super.trigger)
__extends(ViewHelpers, _super);
function ViewHelpers() {
return ViewHelpers.__super__.constructor.apply(this, arguments);
}
return ViewHelpers;
})(Backbone.Events);
Así, la línea que causa el error es
ViewHelpers.__super__.constructor.apply(this, arguments);
¿Qué es diferente acerca de __extends() método que trabajaría para Backbone.View y no Backbone.Events?
he comentado en la diferencia entre Backbone.Events y otros objetos Backbone en una respuesta a continuación, pero me gustaría k: ¿cuál es el propósito de ViewHelpers? Debido a que su nombre no es el nombre típico de las clases (es decir, nombres singulares), puede ser que una clase no sea lo que necesita. – epidemian
¡Gran respuesta abajo gracias! Acepto que los ayudantes generalmente se definen en un ámbito global. En este caso, mantengo una biblioteca de funciones en una clase ViewHelpers, instanciada como una propiedad de mi clase de controlador principal. Hay algunas funciones (por ejemplo, gestores de transición CSS End) que me gustaría suscribir varios oyentes en lugar de pasar una única devolución de llamada. Como ya estoy usando Backbone, pensé que subclase la "clase" del evento (objeto) para ese propósito. Lamento llegar tarde a esta respuesta, no estoy seguro de por qué no me notificaron hace meses. – benipsen