1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2024-12-16 11:37:58 +02:00
Sonarr/UI/Mixins/AsModelBoundView.js

45 lines
1.1 KiB
JavaScript
Raw Normal View History

2013-06-19 04:02:23 +03:00
'use strict';
define(
['backbone.modelbinder'],
function (ModelBinder) {
return function () {
var originalOnRender = this.prototype.onRender,
originalBeforeClose = this.prototype.onBeforeClose;
this.prototype.onRender = function () {
if (!this.model) {
throw 'View has no model for binding';
}
if (!this._modelBinder) {
2013-06-19 04:02:23 +03:00
this._modelBinder = new ModelBinder();
}
this._modelBinder.bind(this.model, this.el);
2013-06-19 04:02:23 +03:00
if (originalOnRender) {
originalOnRender.call(this);
}
};
this.prototype.beforeClose = function () {
if (this._modelBinder) {
this._modelBinder.unbind();
delete this._modelBinder;
}
if (originalBeforeClose) {
originalBeforeClose.call(this);
}
};
return this;
};
}
);