【发布时间】:2014-02-10 21:06:27
【问题描述】:
我尝试使用 jQuery mobile 构建一个 Backbone Marionette 应用程序。 我正在使用 Marionette.CollectionView 生成可搜索的 jQuery 移动列表视图。我通过调用 App.mainRegion.show() 来显示该视图。
return Marionette.CollectionView.extend({
tagName: "ul",
itemView: UserItemView,
emptyView: NoUsersView,
attributes: {
"data-filter" : "true"
},
onShow: function(){
console.log("OnShow!");
//console.log($("body").html());
this.$el.listview();
$.mobile.changePage("#main");
}
}
起初,它只显示普通列表。因此,我添加了 $el.listview()。 但是过滤栏仍然没有显示。我发现了一个类似的问题,它指出必须在调用 .listview() 之前附加元素,但我不知道 Marionette 何时附加 $el。
当我只使用 Backbone 时,我可以简单地调用 "append(template).trigger("create")" 但触发器似乎在这里不起作用。
我应该怎么做才能使过滤器显示?
编辑:这是视图渲染方法生成的列表视图(添加了“数据角色”属性):
<ul data-role="listview" data-filter="true" class="ui-listview">
<li class="ui-li-has-alt ui-first-child ui-last-child">
<a href="#/users/details/hqpmy4j16z11bxfh9f2x" class="ui-btn">
<h2>Thomas Davis</h2>
<div class="ui-li-aside">Age: 12</div>
</a>
<a href="#/users/edit/hqpmy4j16z11bxfh9f2x" data-icon="edit" title="" class="ui-btn ui-btn-icon-notext ui-icon-edit"></a>
</li>
</ul>
过滤栏不显示。
【问题讨论】:
-
您使用的是哪个 jQM 版本?你能做一个小提琴吗?
-
我使用的是 1.4.0 版本。我会尝试创建一个小提琴
-
对不起,我无法让小提琴正常工作:/
-
输出看起来有效,在 jsfiddle 上独立工作......没有更多内容,很难看出为什么它不起作用!!!
-
该输出是一个有效的普通列表视图。因为它是运行时输出,它应该包含过滤器栏中的 ,但它没有。 listview 的动态初始化(.listview() 方法)肯定有一些问题。调用它的地点和时间,或者我错过了一些东西。我不知道我应该发布什么进一步的代码。
标签: javascript jquery-mobile backbone.js marionette jquery-mobile-listview