- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我是一个 Sencha Touch 菜鸟,我可能已经陷入了困境。我想做的是从一个主列表中过滤数据,然后向下钻取。这样我就得到了我的主列表——类别。选择类别后,会出现位置列表。我在让我的模型相互交谈时遇到问题(我认为)。现在的情况是,如果我选择一个类别,我的所有数据都会返回,而我想要的只是所选的类别。我可以使用属性和指定值来过滤我的商店。是否可以将该值设置为从类别菜单传递的变量?我已经cr了
这是我的代码:Category.js
app.views.CategoryList = Ext.extend(Ext.Panel, {
layout: 'card',
fullscreen: true,
scrolling: 'vertical',
initComponent: function() {
//Check if device is a phone, if so only display the title since the viewport is smaller
if (!Ext.is.Phone) {
var listTemplate = '{post_type}';
} else {
var listTemplate = '{post_type}';
}
this.list = new Ext.List({
grouped: false,
indexBar: false,
itemTpl: '{post_type}',
store: app.stores.CategoryList,
listeners: {
selectionchange: {fn: this.onSelect, scope: this}
}
});
///selectionchange : function(){
// this.store.filter('post_type', listTemplate)
//this.onSelect('post_type')
this.listpanel = new Ext.Panel({
layout: 'fit',
items: this.list,
dockedItems: [{
xtype: 'toolbar',
title: listingTitle
}],
listeners: {
activate: { fn: function(){
this.list.getSelectionModel().deselectAll();
Ext.repaint();
}, scope: this }
}
});
this.items = this.listpanel;
app.views.CategoryList.superclass.initComponent.call(this);
},
onSelect: function(sel, records){
if (records[0] !== undefined) {
var categoryCard = new app.views.LocationsList({
store: app.stores.LocationList,
//store: app.stores.LocationList.filter('post_type',null),
prevCard: this.listpanel,
record: records[0]
});
this.setActiveItem(categoryCard, 'slide');
}
}
});
Ext.reg('CategoryList', app.views.CategoryList);
LocationModel.js
//The model will load the locations information you entered in the locations.xml file after it has been fed through JSON
//Register the Location Model
Ext.regModel('Locations', {
fields: [{name: 'post_title', type: 'string'},
{name: 'post_type', type: 'string'}],
belongsTo: 'Category'
});
//Load XML data from JSON into local store
app.stores.LocationsList = new Ext.data.Store({
model: "Locations", //Model to use for the Store
/*filters: [
{
property: 'post_type',
value: null
}
],*/
sorters: [{
property: 'post_title', //Set the title as a sorter to the listing card can use the grouped list layout
direction: 'ASC'
}],
proxy: {
type: 'ajax', //Load JSON from our source defined in the config file
url: HTTP_ROOT + '/' + JSON_SOURCE,
reader: {
type: 'json',
root: 'markers1'
},
id : 'LocationsID'
},
getGroupString : function(record) {
// return the first character of the address in order to group
return record.get('post_title')[0];
},
listeners: {
'load': function (t, r, s) {
//Fire custom event once all the load is complete
Ext.dispatch({
controller: app.controllers.map,
action: 'loaded',
records: r
});
},
},
autoLoad : true //We start loading the info into the datastore immediately after the app is started to make it available ASAP
});
CategoryModel.js
//The model will load the locations information you entered in the locations.xml file after it has been fed through JSON
Ext.regModel('Category', {
fields: [
{name: 'post_type', type: 'string'},],
hasMany: {
model: 'Locations',
name : 'locations',
filterProperty: 'post_type'
}
});
var data = {
"categories":[
{"post_type":"trails"},
{"post_type":"Adventure Guides"},
{"post_type":"brew"},
{"post_type":"Festivals and Races"},
{"post_type":"Paddle and Rafting"},
{"post_type":"Parks and Forests"},
{"post_type":"Campgrounds"},
{"post_type":"Rivers, Mountains, Lakes"}
]
};
//Load XML data from JSON into local store
app.stores.CategoryList = new Ext.data.Store({
model: "Category", //Model to use for the Store
data: data,
sorters: [{
property: 'post_type', //Set the title as a sorter to the listing card can use the grouped list layout
direction: 'ASC'
}],
proxy: {
type: 'memory', //Load JSON from our source defined in the config file
//url: HTTP_ROOT + '/' + JSON_SOURCE,
reader: {
type: 'json',
root: 'categories'
},
id : 'CategoryID'
},
getGroupString : function(record) {
// return the first character of the address in order to group
return record.get('post_type')[0];
},
listeners: {
'load': function (t, r, s) {
//Fire custom event once all the load is complete
Ext.dispatch({
controller: app.controllers.map,
action: 'loaded',
records: r
});
},
},
autoLoad : true //We start loading the info into the datastore immediately after the app is started to make it available ASAP
});
最佳答案
看来你已经接触到了 1.1 版,我现在已经对它有点生疏了,但我会尝试一下。我对使用 Remotefilter 的尝试总是以泪水结束,所以我最终选择了自己的过滤器,而不是尝试使用内置的过滤器方法。 YMMV。
您可以获取商店和商店的代理,然后设置一个 extraParams 对象,该对象将被转换为 get 参数。您还可以通过这种方式修改 url。因此,过去我编写了自定义 setter 方法来过滤远程,因为它似乎比 touch1.1 内置函数工作得更好。
您可以获取商店并将过滤器传递给如下方法:
setFilterParams: function(param) {
var p = this.getProxy();
p.extraParams = {filter_value: param};
// p.url also works
}
...
yourstore.load();
也就是说,您的主列表使用onitemtap或selectionchange从第一个(未过滤的)商店中查找记录,获取该值并应用于您的详细信息页面使用的第二个商店上的setFilter。
另请注意,因为您说您是新手。这些存储代表单例,因此如果您有两个使用同一存储的列表,如果 list1 过滤存储上的数据,则会影响 list2。
关于filter - Sencha Touch 过滤器 ListView 数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8058925/
我有一个基于 的项目 Sencha 触控 v2.0.x ,我在 中处理它 Sencha 建筑师2.0 .现在我更新了 Sencha 建筑师至 2.1 并希望更新我的项目以使用 Sencha 触控 2.
我已经制作了我的应用程序,现在我想打包它,所以我转到包含以下内容的终端中的应用程序目录 /app /app.js /app.json /resources /index.html /touch 我运行
我已经制作了我的应用程序,现在我想打包它,所以我转到包含以下内容的终端中的应用程序目录 /app /app.js /app.json /resources /index.html /touch 我运行
大家好,我是 sencha 的新手,我试图找出 sencha architect/sencha touch 中的一些东西是如何工作的。 我找到了一个项目 http://miamicoder.com/2
有人可以给我写完整的代码来告诉我如何使用 sencha touch 1 淡入和淡出 html 元素吗?具体来说,我需要知道需要包含哪些 html、javascript 和 css 文件。 我一直试图获
我正在尝试使用 sencha touch 的列表分页插件。但是几乎没有关于如何使用它的好(或坏)文档,我很困惑。 当我激活列表中的插件时 this.myList = new Ext.List({
我想要一个水平旋转木马,每个面板的内容都可以垂直滚动。目前,内容在屏幕底部被截断,我无法向下滚动内容。我将此代码用于轮播: Pages.Portfolio = new Ext.Carousel({ t
我正在用sencha touch做一个项目,但我需要连接相机iPad来拍照。开发是通过网络进行的。请帮助我,我找不到解决方案。 谢谢。 最佳答案 如文档中所述:“Sencha Touch 使您能够快速
我是移动技术的新手。我想用Sencha touch创建我的个人投资组合。 我需要为此付费吗? 最佳答案 不,你不会的。我还是建议您使用商业许可证,因为它是免费的,并且对您的操作有较少的限制。您只需要付
我下载了sencha touch 并提取到一个文件夹中。 然后我下载了the sdk tool 并安装它。 使用windows 7 cmd,cd到sencha touch文件夹,然后运行sencha
我的移动应用程序目前在 Sencha Touch 1.1.1 下运行。现在,我想将其升级到 Sencha Touch 2.0。有人可以帮我做这件事吗?升级时我应该注意哪些一般步骤? 另外,是否有帮助该
我只是找不到解决方法,请帮助 我的 config.rb 位于 $PROJECT_HOME/assets/www/theming 位置 dir = File.dirname('..Path_to_pr
在他们的文档中找不到指定了所有日期时间格式的位置? 我想要一个日期看起来像这样 13 Jan 2013 我发现了这个模式: date("F j, Y") 但这给了我很长的月份名称。 (不知道为什么他们
我需要一个简单的嵌套 ListView 示例。沿着这条线的东西...... (来源:roosteronacid.com) 当您单击一个项目时,您将转换(滑动)到包含另一个列表的下一个 View /卡片
我有一个 sencha touch 显示在列表中的联系人列表。然后,当您单击列表中的姓名时,它应该向右滑动并说您好 {联系人姓名}!但是当它现在滑过时,它只是说你好!第 29 行是项目点击的 Acti
我是一名 Ext 老手,但我需要创建一些相当简单的移动应用程序,自然而然我正在研究 sencha touch。 Ting 是 - 大多数示例无法在 Firefox/Opera 中运行。 我很高兴使用
我有一个关于 xtypes 的问题。当我这样做时: // map var map = new Ext.map({ fullscreen: true, getLocation: true
我使用 sencha create app 命令创建了我的应用程序。它在我的机器上以及我们的 Web 服务器上都可以本地运行。我正在尝试构建用于生产的应用程序,但以下命令对我不起作用: sencha
只是想知道在 Sencha Touch 中是否有处理该问题的方法。一个商店,应用不同的过滤器后,商店可以用于不同的地方。 例如: 我有一家商店: Ext.regModel('abc', { f
我想使用 sencha touch 创建自定义工具栏。使用 Ext.Toolbar,我能够创建一个像样的屏幕标题栏。但我的要求是将我公司的品牌形象标志放在标题栏的中央,而不是下面代码提供的简单文本。
我是一名优秀的程序员,十分优秀!