Sencha Touch 2自定义休息代理网址

时间:2013-03-18 16:05:58

标签: sencha-touch-2

我有一个休息api和用户身份验证,其余网址是: https://api.abc.com/user/ {名} / {密码}。所以我需要为rest代理设置两个参数。任何人都可以帮助我吗?

这是我的用户模型:

Ext.define('NCAPP.model.User', {
extend:'Ext.data.Model',

config:{
    fields:[
        { name:'id', type: 'int'},           
        { name: 'username', type: 'string'},
        { name: 'netshop_id', type:'int'},
        { name: 'firstname', type: 'string'},
        { name: 'lastname', type: 'string'},
        { name: 'address', type: 'string'},
         { name:'password', type:'string'},

    ],

    proxy: {
        type:'rest',
        url:https://api.abc.com/user/',
        noCache: false,           
        reader: {
            type:'json',
            rootProperty:'user'
        }            

    }

}

});

这是我在loginbuttion tap功能上的LoginController:

 onLoginButtonTap:function(){

    var values=this.getLoginForm().getValues(); 

    Ext.ModelMgr.getModel('NCAPP.model.User').load(values.username,{
        success:  function(user){
            if(user==null)
                {
                    Ext.Msg.alert('NCAPP',"Invalid username or password!");
                }
                else
                {
                    Ext.Msg.alert('NCAPP','Welcome! '+user.get('username'));
                    //do after login implementation
                }

        },
        failure: function(user){
            console.log("Uff, Something went worng!");
        }
    });    
},

在以下行中,我想传递用户名和密码: Ext.ModelMgr.getModel(' NCAPP.model.User')。load(values.username,values.password,{.....

任何人都可以帮我实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

您可以使用方法“setProxy”动态地将代理添加到模型/商店。

var values = this.getLoginForm().getValues();
YOURMODEL.setProxy({
    proxy: {
        type: 'rest',
        url: 'https://api.abc.com/user/'+ values.username +'/'+ values.password,
        noCache: false,           
        reader: {
            type: 'json',
            rootProperty: 'user'
        }            

    }
});