0

我有一个rest api,对于用户身份验证,rest url 是: https ://api.abc.com/user/ {username}/{password}。所以我需要为其余代理设置两个参数。谁能帮帮我吗?

这是我的用户模型:

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'
        }            

    }

}

});

这是我在登录按钮点击功能上的 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, {.....

谁能帮我实现这个目标?

4

1 回答 1

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'
        }            

    }
});
于 2013-03-18T22:33:38.553 回答