我看過很多關(guān)于 Go Arrays 與 Javascript 一起使用的文章,但我正在嘗試做一些不同的事情。我想使用 Go 讀取配置文件,因為它可以訪問服務(wù)器端,并在將使用模板呈現(xiàn)的 javascript 函數(shù)中使用它。這是為了避免在 JavaScript 中硬編碼值:我想改變這個:javaString += "function isValidPrefix() {"javaString += "forbidden_prefixes = [ \"1\", \"2\", \"3\", \"4\", \"5\", \"6\" ];"... more javascript ...javaString += "}"將前綴放在文件中的東西,這樣我每次想添加前綴時都不必重新編譯。所以我嘗試了這個:var configArr []stringconfigArr = LoadFile("/conf.dat")javaString += "forbidden_prefixes = [];" for _, eachline := range configArr { javaString += "forbidden_prefixes.push(\" + eachline + \");" fmt.Println(eachline)}eachLine在 for 循環(huán)中正確打印,但禁止前綴包含一個元素+ eachLine +,我認為這是一個語法錯誤,但即使我嘗試檢索 DOM 元素的值來檢查它,Web 控制臺也會說該元素不存在。硬編碼值一切正常。我做錯了什么還是根本不可能?
2 回答

大話西游666
TA貢獻1817條經(jīng)驗 獲得超14個贊
您正在使用文字構(gòu)建字符串,而不使用您打算使用的變量。嘗試這個:
javaString += fmt.Sprintf("forbidden_prefixes.push(\"%s\");",eachline)

至尊寶的傳說
TA貢獻1789條經(jīng)驗 獲得超10個贊
問題確實來自您的語法。您轉(zhuǎn)義了引號,因此+
運算符實際上是字符串的一部分。以下是兩種可能的解決方案:
javaString += "forbidden_prefixes.push(\"" + eachline + "\");"
或者
javaString += fmt.Sprintf("forbidden_prefixes.push(%q);", eachline)
%q
在它被替換的值周圍添加引號。
- 2 回答
- 0 關(guān)注
- 114 瀏覽
添加回答
舉報
0/150
提交
取消