tel*_*lob 9 jquery listview css3 jquery-mobile backbone.js
我正在尝试结合Backbone.js和jQuery mobile的优点.我正在为移动设备开发,我正在尝试开发一个动态列表,用于调试日志消息.想象一下,你有一个控制台窗口,你想把条目放在里面.问题是,在插入新内容后<li>,必须刷新列表$('#myList').listview('refresh').这对我不起作用,我收到此错误:
错误:无法在初始化之前调用listview上的方法; 试图调用方法'刷新'
tagName : 'ul',
id : 'console',
consoleTemplate : _.template($('#console-template').html()),
initialize : function() {
console.log('ConsoleView:init');
this.$el.attr('data-inset', 'true');
this.$el.attr('data-role', 'listview');
this.$el.css('width', '50%');
this.$el.append(this.consoleTemplate());
// für alle Funktionen die mit this arbeiten
_.bindAll(this, 'render', 'addConsoleItem', 'appendConsoleItem');
this.consoleItemCollection = new ConsoleItemCollection();
this.consoleItemCollection.bind('add', this.appendConsoleItem);
this.counter = 0;
this.render();
},
render : function() {
console.log('ConsoleView:render');
var self = this;
_(this.consoleItemCollection.models).each(function(item) {
self.addConsoleItem(item);
}, this);
return this;
},
Run Code Online (Sandbox Code Playgroud)
这是我的控制台视图的摘录.
var view = Backbone.View.extend({
el : 'div',
id : 'content',
consoleView : null,
initialize : function() {
console.log('ApplicationView:init');
_.bindAll(this, 'render');
this.$el.attr('data-role', 'content');
_.bindAll(this, 'render');
this.consoleView = new ConsoleView();
this.consoleView.addConsoleItem(new ConsoleItemModel());
},
render : function() {
console.log('ApplicationView:render');
this.$el.append(this.consoleView.render().el);
return this;
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序视图.
那么什么时候调用刷新方法?
谢谢!
Gaj*_*res 27
jQuery Mobile listview需要初始化才能触发刷新:
$('#myList').listview().listview('refresh');
Run Code Online (Sandbox Code Playgroud)
如果你想了解更多关于这个的信息,为什么在jQuery Mobile中使用动态创建的内容时要小心,请看看我的博客文章.或者你可以在这里找到它.
| 归档时间: |
|
| 查看次数: |
8611 次 |
| 最近记录: |