Dig*_*poo 3 url store dynamic carousel sencha-touch
我希望我在Sencha touch中的商店加载一个不同的PHP文件,具体取决于我点击旋转木马中的哪个项目.我的轮播中的每个项目都分配了itemid:{number}.这是我的商店:
var store = new Ext.data.Store({
model: 'One',
proxy: {
type: 'ajax',
url: '/carousel2store/Carousel 2_files/get-album.php',
reader: {
type: 'json',
root: 'albums'
}
},....etc
Run Code Online (Sandbox Code Playgroud)
我已经尝试改变这样的商店,它给了'/ carousel2store/Carousel 2_files/get-album2.php',但是我想让数字2动态,所以它在点击时改变:
var store = new Ext.data.Store({
model: 'One',
proxy: {
type: 'ajax',
url: '/carousel2store/Carousel 2_files/get-album' + '2' +'.php',
reader: {
type: 'json',
root: 'albums'
}
},
Run Code Online (Sandbox Code Playgroud)
我试图添加itemid
url: '/carousel2store/Carousel 2_files/get-album' + '{itemid}' +'.php', and
url: '/carousel2store/Carousel 2_files/get-album' + '{data.itemid}' +'.php',
Run Code Online (Sandbox Code Playgroud)
但到目前为止我没有运气.在sencha论坛上一个非常有用的人建议我试试这个:
var store = new Ext.data.Store({
model: 'One',
proxy: {
type: 'ajax',
url: '/carousel2store/Carousel 2_files/get-album{itemId}.php',
reader: {
type: 'json',
root: 'albums'
}
}
});
store.proxy.url = store.proxy.url.replace('{itemId}', 1);
console.log(store);
Run Code Online (Sandbox Code Playgroud)
...但是当我用鼠标点击时,我无法让它在我的测试中工作,我认为因为它在旋转木马和项目敲击监听器之前已经加载了商店(至少它在我的测试中对我不起作用)鼠标).我想在项目点击后我需要一种强制更新商店名称的方法.
提前致谢
:-)
我有一个类似的问题,我需要动态更改我的代理上的URL.我发现这在大多数情况下效果特别好,只需确保正确处理您的加载顺序.
store = Ext.StoreMgr.get('YourStore');
store.setProxy({
type: 'ajax',
url: 'http://www.yoururl.com?foo=bar',
});
Run Code Online (Sandbox Code Playgroud)