如何从控制器传递价值到数据存储在sencha触摸 [英] How to pass value from controller to data store in sencha touch
问题描述
查看代码
var select = new Ext.form.Select({
id:'selectCity',
store:parking.stores.city,
displayField:'Name',
valueField:'Name',
placeHolder:'Choose City',
cls:'select'
});
var citySearchButton = new Ext.Button({
cls:'citySearch',
text:'Search',
handler:function(){
Ext.dispatch({
controller:parking.controllers.controller,
action:'showMapBasedOnCity',
id:Ext.getCmp('selectCity')。getValue()
});
}
});
从我的看法我可以将值传递给控制器。
showMapBasedOnCity:function(options){
var city = options.id;
// var data = parking.stores.parkingFacilityByCity.setId(city);
// parking.views.map.addMap(city);
parking.views.viewport.setActiveItem(
parking.views.map,options.animation
);
},
问题是如何将值从这里传递给数据存储:我需要控制器的参数(城市值)传递给我的jsonp查询以获得所需的结果。)
parking.stores.parkingFacilityByCity = new Ext.data.Store({
model:'PF',
proxy:Ext.util.JSONP.request({
url:'http ://parking.511.org/index/M_GetParkingFacilityByCity',
callbackKey:'callback',
parmas:{city:},
scope:this,
callback:function (数据){
var list = data.Root;
parking.stores.parkingFacilityByCity.loadData(data.Root);
}
})
});
任何帮助将不胜感激。
谢谢,
Pawan
在我的窗体按钮上点击我得到的值并将其传递给调度方式。在调度方法中,我调用控制器。
var select = new Ext.form.Select({
id: 'selectCity',
store:parking.stores.city,
displayField:'Name',
valueField:'Name',
placeHolder:'Choose City',
cls:'select'
});
var citySearchButton = new Ext.Button({
cls:'citySearch',
text:'Search',
handler:function(){
Ext.dispatch({
controller:parking.controllers.controller,
action:'showMapBasedOnCity',
id:Ext.getCmp('selectCity')。getValue()
});
}
});
在控制器中,我将该方法称为按城市获取新数据的商店的停车设施。
showMapBasedOnCity:function(options){
var city = options.id;
getParkingFacilityByCity(city);
// parking.views.map.addMap();
parking.views.viewport.setActiveItem(
parking.views.map,options.animation
);
Data.js文件
parking.stores.parkingFacilityByCity = new Ext.data.Store({
model:'PF',
autoload:true
});
var getParkingFacilityByCity = function(cityName){
Ext.util.JSONP.request({
url:'http://parking.511.org/index/M_GetParkingFacilityByCity' ,
callbackKey:'callback',
params:{city:cityName},
callback:function(data){
parking.stores.parkingFacilityByCity.loadData(data.Root) ;
}
});
};
希望这有帮助。也可能有其他方法。但这是对我来说很好的工作。
Can some one tell me how to pass data from controller to a data store in sencha touch.
view code
var select = new Ext.form.Select({
id:'selectCity',
store: parking.stores.city,
displayField: 'Name',
valueField: 'Name',
placeHolder: 'Choose City',
cls:'select'
});
var citySearchButton = new Ext.Button({
cls: 'citySearch',
text: 'Search',
handler: function () {
Ext.dispatch({
controller: parking.controllers.controller,
action: 'showMapBasedOnCity',
id: Ext.getCmp('selectCity').getValue()
});
}
});
from my view i am able to pass the value to the controller.
showMapBasedOnCity: function (options) {
var city = options.id;
//var data = parking.stores.parkingFacilityByCity.setId(city);
// parking.views.map.addMap(city);
parking.views.viewport.setActiveItem(
parking.views.map, options.animation
);
},
The problem is how to pass the value from here to the data store : I need the parameter from controller (the city value) to pass to my jsonp query to get the desired result back).
parking.stores.parkingFacilityByCity = new Ext.data.Store({
model: 'PF',
proxy: Ext.util.JSONP.request({
url: 'http://parking.511.org/index/M_GetParkingFacilityByCity',
callbackKey: 'callback',
parmas: { city: },
scope: this,
callback: function (data) {
var list = data.Root;
parking.stores.parkingFacilityByCity.loadData(data.Root);
}
})
});
Any help would be greatly appreciated.
Thanks, Pawan
In my Form on button click i get the value from and pass it on to the dispatch method. In the dispatch method i call the controller.
var select = new Ext.form.Select({
id:'selectCity',
store: parking.stores.city,
displayField: 'Name',
valueField: 'Name',
placeHolder: 'Choose City',
cls:'select'
});
var citySearchButton = new Ext.Button({
cls: 'citySearch',
text: 'Search',
handler: function () {
Ext.dispatch({
controller: parking.controllers.controller,
action: 'showMapBasedOnCity',
id: Ext.getCmp('selectCity').getValue()
});
}
});
In the controller i call the method get parking facility by city which get the new data into the store.
showMapBasedOnCity: function (options) {
var city = options.id;
getParkingFacilityByCity(city);
// parking.views.map.addMap();
parking.views.viewport.setActiveItem(
parking.views.map, options.animation
);
Data.js file
parking.stores.parkingFacilityByCity = new Ext.data.Store({
model: 'PF',
autoload: true
});
var getParkingFacilityByCity = function (cityName) {
Ext.util.JSONP.request({
url: 'http://parking.511.org/index/M_GetParkingFacilityByCity',
callbackKey: 'callback',
params: { city: cityName },
callback: function (data) {
parking.stores.parkingFacilityByCity.loadData(data.Root);
}
});
};
Hope this helps some one. There may be other methods too. But this is the one which worked for me pretty well.
这篇关于如何从控制器传递价值到数据存储在sencha触摸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!