J'utilise les recommandations énoncées ici (http://www.odetocode.com/articles/473.aspx) pour écrire un système de discussion en ligne AJAX JavaScript en utilisant simulé Namespacing et le prototypage.Javascript 'Namespaces' et jQuery AJAX
Dans l'une de mes méthodes prototypes J'appelle la méthode $ .ajax dans jQuery. Ce que je veux ensuite faire est de transmettre les données JSON retournées dans une méthode à l'intérieur de mon espace de noms webchat JavaScript. Le problème semble être dû au fait que j'ai créé une instance de mon webchat en JavaScript, je ne peux pas appeler directement une méthode à l'intérieur car je dois l'adresser via l'instance.
La partie clé du code ci-dessous est
success: function(data, textStatus) {
this.GetUpdate_Success(data)
},
Je pense parce que nous sommes dans la méthode $ .ajax(), que ce ne fait plus référence à notre objet WebchatV3.
Le code JavaScript complet est présenté ci-dessous:
/// <reference path="/JavaScript/jquery-1.3.2-vsdoc2.js" />
// Simulated 'namespace'
var AvonAndSomerset = {}
// Chatroom run time data
AvonAndSomerset.WebchatV3 = function(memberId, passcode) {
this.Members = new Array(); // Members in the chatroom
this.Questions = new Array(); // The questions queue in the chatroom
// Details about the current user
this.currentMember = new AvonAndSomerset.WebchatV3.Member(memberId, passcode, null, null, null, null, null);
// Set-up AJAX defaults
$.ajaxSetup({ type: "POST", contentType: "application/json; charset=utf-8", dataType: "json" });
}
AvonAndSomerset.WebchatV3.prototype =
{
// Get latest Member,Quetsion,Transcript and Room data from server
GetUpdate: function(StartUp) {
$.ajax({ url: "JSON.aspx/Members_GetChanges",
data: "{ MemberID: " + this.currentMember.memberId + ", Passcode: \"" + this.currentMember.passcode + "\", ReturnAll: " + StartUp + " }",
success: function(data, textStatus) {
this.GetUpdate_Success(data)
},
error: function(result) {
alert('Members_GetChanges() failed: ' + result.responseText);
}
});
},
// Callback - on success of GetUpdate()
GetUpdate_Success: function(data) {
alert('The AJAX call was successful!');
},
// Does the MemberID exist in the local array?
Members_DoesExist: function(MemberID) {
alert('Searching for ' + MemberID);
alert(this.Members.length);
}
Parfait! Je vous remercie :) –