1
0
mirror of https://github.com/flarum/core.git synced 2025-02-23 10:46:29 +01:00
php-flarum/js/lib/component.js

46 lines
752 B
JavaScript
Raw Normal View History

2015-04-25 22:28:39 +09:30
/**
*/
export default class Component {
/**
*/
constructor(props) {
this.props = props || {};
this.element = m.prop();
}
/**
*/
$(selector) {
return selector ? $(this.element()).find(selector) : $(this.element());
}
/**
*/
static component(props) {
props = props || {};
2015-05-02 08:45:11 +09:30
if (this.props) {
props = this.props(props);
}
2015-04-25 22:28:39 +09:30
var view = function(component) {
component.props = props;
return component.view();
};
view.$original = this.prototype.view;
var output = {
props: props,
component: this,
controller: this.bind(undefined, props),
view: view
};
if (props.key) {
output.attrs = {key: props.key};
}
return output;
}
}