如何在sencha touch中将控制器的值传递给数据存储

问题描述:

有人能告诉我如何以sencha touch的形式将数据从控制器传递到数据存储。如何在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 (data) { 
      var list = data.Root; 
      parking.stores.parkingFacilityByCity.loadData(data.Root); 
     } 
    }) 
}); 

任何帮助将不胜感激。

感谢, 爬完

在我的按钮形式点击我得到的值,并把它传递给调度方法。在调度方法中,我称之为控制器。

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); 
     } 
    }); 
}; 

希望这有助于一些之一。也可能有其他方法。但是这对我来说工作得很好。