- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想构建一个动态的框架。首先,将“loanname”添加为我在选项卡中的标题,以添加到选项卡面板。其次,动态添加我的产品,其中贷款名称衡量选项卡标题的贷款名称。
json 中的贷款名称是我希望成为每个选项卡上的标题的标题:
{
"listjson" : [
{"loanname" : "xixi22" , "loandesc" : "use to architecture"},
{"loanname" : "xixi2" , "loandesc" : "use to education"},
{"loanname" : "xixi3" , "loandesc" : "use to plane and others"}
]
}
以及我想要将其放入列表中的产品(包含相同贷款名称产品的列表),然后将列表放入匹配选项卡中:
{
"products" :[
{"loanname": "xixi22", "loannum": "A-0000001", "interests": "6.5", "timeline": "1 year"},
{"loanname": "xixi22", "loannum": "A-0000002", "interests": "7", "timeline": "2 year"},
{"loanname": "xixi2", "loannum": "B-0000001", "interests": "9", "timeline": "3 year"},
{"loanname": "xixi3", "loannum": "C-0000001", "interests": "11.5", "timeline": "4 year"}
]
}
我想要的结果 View 类似于以下内容:但我遇到了一个问题,列表中包含其他产品,该产品与标题中的贷款名称不匹配并显示为空
-------------编辑部分---------我的部分代码可见:
{
xtype: 'tabpanel',
itemId: 'tabfirst',
flex: 1,
//activeItem: 1,
tabBar: {
layout: {
pack: 'center'
}
},
defaultType: 'tablist'
}
ListView :
Ext.define('ylp2p.view.tablist',{
extend: 'Ext.dataview.List',
xtype: 'tablist',
config: {
title: '',
store: 'productstore',
itemTpl: '{loanname}'
}
});
我在 Controller 中的代码:
Ext.define('ylp2p.controller.addtab',{
extend: 'Ext.app.Controller',
config: {
refs: {
myTabPanel: '.makemoney #tabfirst',
},
controller: {
myTabPanel: {
activate: 'OnActivateTabPanel',
activateitemchange: 'OnActivateItemChangeTabPanel'
}
}
},
launch: function(){
var products = Ext.getStore('productstore');
products.filterBy(function(record, id){
return record.get('loanname') === 'xixi22';
});
},
OnActiveTabPanel: function(newActiveItem, viewport, oldActiveItem, eOpts){
var tabs = Ext.getStore('loanliststore');
tabs.each(function(record){
newActiveItem.add({
title: record.get('loanname')
});
});
},
OnActiveItemChangeTabPanel: function(cmp, value, oldValue, eOpts){
var products = value.getStore();
products.clearFilter(true);
products.filterBy(function(record, id) {
return record.get('loanname') === value.getTitle();
});
}
});
我的商店:1.tab商店loanlist.js,2.产品商店prostore.js
Ext.define('ylp2p.store.loanlist',{
extend: 'Ext.data.Store',
config:{
model: 'ylp2p.model.list',
storeId: 'loanliststore',
autoload: true,
proxy: {
type: 'ajax',
url: 'resources/json/loanlist.json',
reader:{
type: 'json',
rootProperty: 'listjson'
}
}
}
});
和
Ext.define('ylp2p.store.prostore',{
extend: 'Ext.data.Store',
config: {
model: 'ylp2p.model.loanproduct',
storeId: 'productstore',
autoload: true,
proxy: {
type: 'ajax',
url: 'resources/json/product.json',
reader: {
type: 'json',
rootProperty: 'products'
}
}
}
});
app.js:
Ext.application({
name: 'ylp2p',
requires: [
'Ext.MessageBox'
],
views: [
'ylp2p.view.Main',
'ylp2p.view.makemoney',
'ylp2p.view.tablist'
],
stores: [
'ylp2p.store.datainterests',
'ylp2p.store.loanlist',
'ylp2p.store.picstore',
'ylp2p.store.prostore'
],
models: [
'ylp2p.model.data',
'ylp2p.model.list',
'ylp2p.model.picmodel',
'ylp2p.model.loanproduct'
],
controllers: [
'ylp2p.controller.viewdata',
'ylp2p.controller.viewlist',
'ylp2p.controller.loadpic',
'ylp2p.controller.addtab'
],
icon: {
'57': 'resources/icons/Icon.png',
'72': 'resources/icons/Icon~ipad.png',
'114': 'resources/icons/Icon@2x.png',
'144': 'resources/icons/Icon~ipad@2x.png'
},
isIconPrecomposed: true,
startupImage: {
'320x460': 'resources/startup/320x460.jpg',
'640x920': 'resources/startup/640x920.png',
'768x1004': 'resources/startup/768x1004.png',
'748x1024': 'resources/startup/748x1024.png',
'1536x2008': 'resources/startup/1536x2008.png',
'1496x2048': 'resources/startup/1496x2048.png'
},
launch: function() {
// Destroy the #appLoadingIndicator element
Ext.fly('appLoadingIndicator').destroy();
// Initialize the main view
Ext.Viewport.add(Ext.create('ylp2p.view.Main'));
Ext.getStore('interestsdata').load();
Ext.getStore('loanliststore').load();
Ext.getStore('imagestore').load();
Ext.getStore('productstore').load();
console.log('start Big weapon!!here is app.js launch function');
onUpdated: function() {
Ext.Msg.confirm(
"Application Update",
"This application has just successfully been updated to the latest version. Reload now?",
function(buttonId) {
if (buttonId === 'yes') {
window.location.reload();
}
}
);
}
});
最佳答案
在 activeitemchange 监听器中,您可以根据选项卡标题 (activeitem) 过滤商店。我很快为您创建了一个 fiddle ,向您展示我将如何做到这一点:
https://fiddle.sencha.com/#fiddle/u50
var tabs = Ext.create('Ext.data.Store', {
fields: ['loanname', 'loandesc'],
data: [
{"loanname" : "xixi22" , "loandesc" : "use to architecture"},
{"loanname" : "xixi2" , "loandesc" : "use to education"},
{"loanname" : "xixi3" , "loandesc" : "use to plane and others"}
]
})
var products = Ext.create('Ext.data.Store', {
fields: ['loanname','loannum','interests','timeline'],
data: [
{"loanname": "xixi22", "loannum": "A-0000001", "interests": "6.5", "timeline": "1 year"},
{"loanname": "xixi22", "loannum": "A-0000002", "interests": "7", "timeline": "2 year"},
{"loanname": "xixi2", "loannum": "B-0000001", "interests": "9", "timeline": "3 year"},
{"loanname": "xixi3", "loannum": "C-0000001", "interests": "11.5", "timeline": "4 year"}
]
});
Ext.define('Fiddle.view.MyList', {
extend: 'Ext.dataview.List',
xtype: 'mylist',
config: {
title: '', // We have to config a title to let the framework generate getters and setters
store: products,
itemTpl: '{loannum}'
}
});
Ext.application({
name : 'Fiddle',
launch : function() {
var tabPanel = Ext.create('Ext.TabPanel', {
fullscreen: true,
defaultType: 'mylist',
items: [],
listeners: {
activate: function( newActiveItem, viewport, oldActiveItem, eOpts) {
products.filterBy(function(record, id) {
return record.get('loanname') === 'xixi22';
});
},
activeitemchange: function( cmp, value, oldValue, eOpts ) {
products.clearFilter(true);
products.filterBy(function(record, id) {
return record.get('loanname') === value.getTitle();
});
}
}
});
tabs.each(function(record){
tabPanel.add({
title: record.get('loanname'),
iconCls: 'home',
});
});
}
});
关于javascript - sencha如何在tabpanel中动态添加选项卡,并将列表添加到tabpanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643258/
我有一个基于 的项目 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,我能够创建一个像样的屏幕标题栏。但我的要求是将我公司的品牌形象标志放在标题栏的中央,而不是下面代码提供的简单文本。
我是一名优秀的程序员,十分优秀!