簡體   English   中英

如何使擴展成為語句的一部分?

[英]How can I make extensions part of statement dynamic?

發送語句有一部分讓我感到困惑。 在第一組代碼中,我設置了一些變量,然后將它們成功地用於發送語句。 一切正常, 除了我嘗試進行“擴展”時。 我為擴展的兩個部分都設置了變量,但是當我嘗試在第二組代碼中使用它時,我無法使其正常工作。 我試過轉義引號和許多其他組合,但沒有用。 控制台錯誤消息狀態為“錯誤請求”。 我該如何修改底部代碼集中的擴展區域,使其起作用。 謝謝。

//this happens when the user clicks the 'Find your English level' link
$("#findYourEnglishLevel").click(function () {
    window.open('https://learnenglish.britishcouncil.org/en/content', 'myWin', 'scrollbars=yes,resizable=yes,top=50,left=50,width=1280,height=920');
    var name = localStorage.getItem("name");
    var email = localStorage.getItem("email");
    var myView = "Find your English Level";
    var ext1 = "https://learnenglish.britishcouncil.org/en/content";
    var ext2 = "Find your English Level";
    sendStatement(myView, name, email, ext1, ext2);
});



function sendStatement(m, n, e, ext1, ext2) {
    //var stmt = {"actor" : {"mbox" : "mailto:user@example.com"},
    var stmt = {"actor": {
            "mbox": ("mailto:" + e),
            "name": n
        },

        "verb": {"id": "http://adlnet.gov/expapi/verbs/accessed",
            "display": {"en-US": "accessed"}},
        "object": {"id": "https://www.syniverse.com/businessenglish",
            "definition": {

                /*"extensions": {
                 "https://learnenglish.britishcouncil.org/en/content": "Find your English Level"
                 },*/

                "extensions": {
                    ext1: ext2
                },

                "name": {
                    "en-US": m
                },

                "description": {
                    "en-US": "Business English"
                }
            },
        }};


    conf()
    ADL.XAPIWrapper.sendStatement(stmt, function (resp, obj) {
        ADL.XAPIWrapper.log("[" + obj.id + "]: " + resp.status + " - " + resp.statusText);
    });
}

您試圖在對象聲明期間將ext1用作鍵的變量,但不能這樣做。

第一個取決於您所使用的javascript(瀏覽器或NodeJS),並且是一個更現代的實現。

"extensions": { [ext1] : ext2 },

https://jsfiddle.net/ak9L40n7/

否則,在定義了stmt您可以通過這種方式使用鍵的字符串來設置新的鍵值對

stmt[ext1] = ext2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM