fix: register components as constructor functions (not object literals) - fixes 'not a constructor' crash
This commit is contained in:
1 parent
38632479c9
commit
48aff1d364
1 file changed
+14
-18
@@ -21,14 +21,11 @@
|
||||
}
|
||||
|
||||
// ---------- Компонент: список фильмов ----------
|
||||
// Паттерн из официального iptv-плагина Lampa:
|
||||
// create() возвращает this.render(); render() строит html и выводит через Lampa.Layer.
|
||||
Lampa.Component.add(PLUGIN.name, {
|
||||
create: function () {
|
||||
return this.render();
|
||||
},
|
||||
render: function () {
|
||||
var comp = this;
|
||||
// Регистрируется как функция-конструктор (как iptv), иначе Lampa падает:
|
||||
// "component is not a constructor"
|
||||
function MyMovies() {
|
||||
var comp = this;
|
||||
this.create = function () {
|
||||
var html = $('<div class="mymovies"><div class="movies-grid"></div></div>');
|
||||
comp.activity.loader(true);
|
||||
|
||||
@@ -54,8 +51,9 @@
|
||||
});
|
||||
|
||||
return html;
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
Lampa.Component.add(PLUGIN.name, MyMovies);
|
||||
|
||||
function renderMovies(grid, movies) {
|
||||
grid.empty();
|
||||
@@ -77,12 +75,9 @@
|
||||
|
||||
// ---------- Компонент: детали фильма ----------
|
||||
var selected = null;
|
||||
Lampa.Component.add(PLUGIN.name + '_detail', {
|
||||
create: function () {
|
||||
return this.render();
|
||||
},
|
||||
render: function () {
|
||||
var comp = this;
|
||||
function MyMoviesDetail() {
|
||||
var comp = this;
|
||||
this.create = function () {
|
||||
var m = selected;
|
||||
if (!m) { Lampa.Activity.back(); return $('<div></div>'); }
|
||||
|
||||
@@ -105,8 +100,9 @@
|
||||
Lampa.Layer.update(html);
|
||||
Lampa.Layer.visible(html);
|
||||
return html;
|
||||
}
|
||||
});
|
||||
};
|
||||
}
|
||||
Lampa.Component.add(PLUGIN.name + '_detail', MyMoviesDetail);
|
||||
|
||||
function openMovie(m) {
|
||||
selected = m;
|
||||
|
||||
Reference in new issue
Block a user