0

我正在尝试编写一个需要加载(和解析)JSON 文件的 VSTS 扩展,但我很难找到正确的方法。

所以我有类似的东西:

VSS.init({
    explicitNotifyLoaded: true,
    usePlatformScripts: true
});

var witClient;
var rules;

VSS.ready(function () {
    require(["fs"], function (fs) {
        rules = JSON.parse(fs.readFileSync("urlMatches.json"));
    })

    VSS.require(["VSS/Service", "TFS/WorkItemTracking/RestClient"], function (VSS_Service, TFS_Wit_WebApi) {
        // Get the REST client
        witClient = VSS_Service.getCollectionClient(TFS_Wit_WebApi.WorkItemTrackingHttpClient);
    });

     // Register a listener for the work item page contribution.
    VSS.register(VSS.getContribution().id, function () {
        return {
            // Called after the work item has been saved
            onSaved: function (args) {
                witClient.getWorkItem(args.id).then(
                    function (workItem) {
                        // do some stuff involving the loaded JSON file...
                    });
            }
        }
    });

    VSS.notifyLoadSucceeded();
});

我已经尝试了很多变体,但没有任何运气。我什至尝试过使用 jQuery 同步加载我的文件,但我的rules最终结果是未定义的。

所以我有这个文件urlmatches.json,我需要加载它并rules在我到达onSaved处理程序之前使用它来填充变量。

4

1 回答 1

0

您可以通过 HTTP 请求检索内容,例如:

 onSaved: function (args) {
                        console.log("onSaved -" + JSON.stringify(args));
                        var request = new XMLHttpRequest();
                        request.open('GET', 'TestData.txt', true);
                        request.send(null);
                        request.onreadystatechange = function () {
                            if (request.readyState === 4 && request.status === 200) {
                                var type = request.getResponseHeader('Content-Type');
                                console.log(request.responseText);
                            }
                        }
于 2018-03-19T02:29:40.447 回答