2013-12-19 29 views
2

我想用jQuery post方法發送TypeScript類。一切工作都很順利,但有一點我正在努力解決。Typescript jquery post object

可以說我得到了下面的模型。

export class TestModel{ 
    private id: string; 
    private username: string; 

    constructor(id: string, username: string) { 
     this.id= loginName; 
     this.username= password; 
    } 

    IsValid(): boolean { 
     return true; 
    } 
} 

以及張貼它,我得到這個功能:

var testModel = new TestModel("test1", "test2"); 
    $.ajax({ 
     url: "MyUrl", 
     type: "POST", 
     data: testModel, 
    }); 

當我看向網絡請求如下因素的信息後:

id: test1 
username: test2 
IsValid: true 

我要發佈的唯一的東西是id和用戶名,IsValid方法僅用於驗證此模型,就像填寫所有字段,當它是電子郵件字段時檢查填充的電子郵件等。

所以我的問題是,什麼是解決方案只發送id和用戶名,沒有任何其他功能? (如果這是可能的:))。

感謝您的幫助, 斯特凡

回答

1

IsValid是JavaScript對象。如果你想從對象中刪除它(但你不會有之後的訪問),你可以刪除它像(javascript代碼):

delete['IsValid']; 

的最佳方式是手動傳給你想將你的參數ajax查詢。

使用Javascript(從打字稿換算):

var TestModel = (function() { 
    function TestModel(id, username) { 
     // I've corrected this part 
     this.id = id; 
     this.username = username; 
    } 
    TestModel.prototype.IsValid = function() { 
     return true; 
    }; 
    return TestModel; 
})(); 

的Ajax查詢:

var testModel = new TestModel("test1", "test2"); 

$.ajax({ 
    url: "", 
    type: "POST", 
    data: { id:testModel.id, username:testModel.username } // Access property with <object>.<property> 
}); 

您將看到您的POST數據id=test1&username=test2

打字稿代碼:

export class TestModel{ 
    private id: string; 
    private username: string; 

    constructor(id: string, username: string) { 
     this.id = id; 
     this.username = username; 
    } 

    IsValid(): boolean { 
     return true; 
    } 
} 
相關問題