Hi,
ich arbeite mit Jquery und Sharepoint und versuche un einer Klasse 2 Abfragen auf den Sharepoint zu machen, um mir meine Daten zusammenzusammeln, um dann auf diesen Daten Berechnungen durchzuführen.
Soweit die Theorie.
In meinem Verständnis für Klassen und und Objekte müsste der Code so funktionieren.
Ich habe aber mittlerweile das Gefühl, dass ich grundsätzlich etwas falsch mache.
Wenn ich meinen Code ausführe, kommt er bis this.F_GotIssueData und sagt mir dann dass this.F_GetVolumes() nicht definiert ist.
Da ich euch keinen Zugriff auf den Sharpoint geben kann, ist der gepostete Code nicht ausführbar und greift auf Dummyfunktionen zurück.
Aber vielleicht sieht ja ein Javascript und Ajax Profi auch unter diesen schlechten Bedingungen was hier schief läuft.
Erst habe ich gedacht dass es daran liegt, dass ich eine Methode aus einer Methode heraus aufrufe. Deswegen habe ich folgendes Testskript geschrieben. Das funktioniert aber ohne Probleme. Und nun bin ich vollkommen verwirrt.
ich arbeite mit Jquery und Sharepoint und versuche un einer Klasse 2 Abfragen auf den Sharepoint zu machen, um mir meine Daten zusammenzusammeln, um dann auf diesen Daten Berechnungen durchzuführen.
Soweit die Theorie.
In meinem Verständnis für Klassen und und Objekte müsste der Code so funktionieren.
Ich habe aber mittlerweile das Gefühl, dass ich grundsätzlich etwas falsch mache.
Wenn ich meinen Code ausführe, kommt er bis this.F_GotIssueData und sagt mir dann dass this.F_GetVolumes() nicht definiert ist.
Da ich euch keinen Zugriff auf den Sharpoint geben kann, ist der gepostete Code nicht ausführbar und greift auf Dummyfunktionen zurück.
Aber vielleicht sieht ja ein Javascript und Ajax Profi auch unter diesen schlechten Bedingungen was hier schief läuft.
Code:
function F_SomeFunctionThatBuildsMeAQuery()
{
//Dummy
}
function F_SomeFunctionThatBuildsMeAnotherQuery()
{
//Dummy
}
function C_Analysis(sDate, sLine, sShift)
{
this.bIssueReady = false;
this.bVolumeready = false;
this.sDate = sDate;
this.sLine = sLine;
this.sShift = sShift;
this.oIssueList;
this.oVolumeList;
this.F_GetVolumes=function()
{
var l_QueryUrl = F_SomeFunctionThatBuildsMeAQuery();
$.ajax({
url: l_QueryUrl,
headers: {"accept": "application/json;odata=verbose"},
method: 'GET',
success: this.F_GotVolumeData,
error: function (oData) {
console.log("VOLUME FEHLER");
console.log(oData);
}
});
};
this.F_GotIssueData = function(oData)
{
if (oData)
{
this.oIssueList = oData.d.results;
console.log("ISSUE");
console.log(this.oIssueList);
this.F_GetVolumes();
}
};
this.F_GetIssueData = function ()
{
var oStartEndTime = F_GetStartEndTime(this.sDate, this.sShift);
var sFilter = F_SomeFunctionThatBuildsMeAnotherQuery();
$.ajax({
url: l_QueryUrl,
headers: {"accept": "application/json;odata=verbose"},
method: 'GET',
success: this.F_GotIssueData,
error: function (oData) {
console.log("ISSUE FEHLER");
console.log(oData.d.results);
}
});
};
this.F_GotVolumeData = function (oData)
{
if (oData)
{
this.oVolumeList = oData.d.results;
this.bVolumeReady = true;
console.log("VOLUME");
console.log(oData.d.results);
}
};
this.F_GetIssueData();
}
Erst habe ich gedacht dass es daran liegt, dass ich eine Methode aus einer Methode heraus aufrufe. Deswegen habe ich folgendes Testskript geschrieben. Das funktioniert aber ohne Probleme. Und nun bin ich vollkommen verwirrt.
Code:
<!DOCTYPE html>
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<script src='jquery-1.11.3.js'></script>
</head>
<body>
<style type="text/css">
.rahmen
{
border: 1px solid black;
}
.hintergrund
{
border: 1px solid black;
background-color: #ADFFC5;
}
</style>
<script>
function C_TestKlasse()
{
this.sAttribut1 = 'Hallo';
this.sAttribut2 = 'Welt';
this.F_Methode1 = function()
{
$('#haupt').append($('<div>', {class: "rahmen", id:'div1'}));
$('#div1').append(this.sAttribut1);
this.F_Methode2();
};
this.F_Methode2 = function()
{
$('#haupt').append($('<div>', {class: 'hintergrund', id: 'div2'}));
$('#div2').append(this.sAttribut2);
};
this.F_Methode1();
}
$(document).ready(
function () {
var oMyObject = new C_TestKlasse();
}
);
</script>
<div id='haupt'>
</div>
</body>
</html>