gpt4 book ai didi

javascript - 当我使用 soyutils.js 时,goog.string 被覆盖

转载 作者:行者123 更新时间:2023-11-30 13:27:02 25 4
gpt4 key购买 nike

soyutils.js 包含在同一 HTML 文件中时,

goog.string 将无法使用。

因为在 soyutils.js 中有它自己的 goog.string 完全覆盖 goog.string <-- goog.require('goog.string').


<!DOCTYPE html>
<html>
<head>
<title>codeBox</title>
<script src="{{STATIC_URL}}closure-library/closure/goog/base.js"></script>
<script>

goog.require('goog.string');

</script>

<script src="{{STATIC_URL}}soyutils.js"></script>
</head>
<body>
<script>
console.log(goog.string.trim);

</script>
</body>

(忽略 Django 服务器的 {{STATIC_URL}})

console.log(goog.string.trim) 将显示“未定义”。

那是因为 goog.string 被位于 soyutils.js 中的 goog.string 覆盖了。

我如何在不编译的情况下解决这个问题?(当我编译所有文件.. 然后它运行良好)

最佳答案

代替

<script src="{{STATIC_URL}}soyutils.js"></script>

使用

<script src="{{STATIC_URL}}soyutils_usegoog.js"></script>

您可以在与闭包模板 tarball 中的 soyutils.js 相同的目录中找到 soyutils_usegoog.js

问题出现是因为soyutils有两个版本。

  1. soyutils.js 是面向非闭包用户的版本,包含的闭包足以让 SoyToJSCompiler 中的 JavaScript 正常工作。
  2. soyutils_usegoog.js 是与闭包库和闭包编译器一起使用的版本。它不应与闭包库冲突。

Closure Template JavaScript Usage解释:

JavaScript code that's generated by the template compiler depends on a number of utilities.

Include one of these two utility files, depending on whether you're already using the Closure Library:

  • javascript/soyutils.js
  • javascript/soyutils_usegoog.js

These files are included in the tarball you can download from the Closure Templates downloads page.

If your project already uses the Closure Library, use soyutils_usegoog.js, which is a much smaller file than soyutils.js.

关于javascript - 当我使用 soyutils.js 时,goog.string 被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8139945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com