1
AngularJSアプリケーションをAngular 4に変換してSharePointからデータを取得しています。これはJSOMを使用しており、executeQueryAsync()メソッドを使用しています。AngularJSの約束をJSOMのAngularXに変換する
サーバーからexecuteQueryAsync()を使用してデータを取得し、それを私のサービス内の監視可能オブジェクトに格納したいとします。古いバージョン(私のものではない)から変換しなければならないコードは以下の通りです。今私はそれを私のサービスに変換するときに構文に苦しんでいます。私は角4
にこれを変換する方法を絶対予定はありませんgetAllStatusReps($scope) {
const deferred = $q.defer();
const ctx = SP.ClientContext.get_current();
const web = ctx.get_web();
const statusList = web.get_lists().getByTitle(this.statusListName);
const twitterList = web.get_lists().getByTitle(this.twitterListName);
const statReps = statusList.getItems(this.getQueryForAllStatusReps());
const twitReps = twitterList.getItems(this.getQueryForAllStatusReps());
const queryText = `
<View>
<RowLimit>1</RowLimit>
<ViewFields>{0}</ViewFields>
<Query>
<Where><IsNotNull><FieldRef Name=\'EPMStatusDate\' /></IsNotNull></Where>
<OrderBy><FieldRef Name=\'ID\' Ascending= \'False\' /></OrderBy>
</Query>
</View>`;
const statCamlQuery = new SP.CamlQuery();
statCamlQuery.set_viewXml(String.format(queryText, this.getViewFields(true, false)));
const lastStatRep = statusList.getItems(statCamlQuery);
const twitCamlQuery = new SP.CamlQuery();
twitCamlQuery.set_viewXml(String.format(queryText, this.getViewFields(false, false)));
const lastTwitRep = twitterList.getItems(twitCamlQuery);
ctx.load(statReps);
ctx.load(twitReps);
ctx.load(lastStatRep);
ctx.load(lastTwitRep);
ctx.executeQueryAsync(
function() {
deferred.resolve({
statReps: statReps,
twitReps: twitReps,
lastStatRep: lastStatRep,
lastTwitRep: lastTwitRep
});
},
function (sender, args) {
deferred.reject('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
);
return deferred.promise;
}