问题标签 [google-closure]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - ASP.NET MVC3 和正确的客户端软件开发模型?
我目前正在评估如何创建和维护具有我们以前从未尝试过的客户端丰富程度的 MVC3 Web 应用程序。我意识到这将需要更深思熟虑地使用 javascript。
这导致我开始研究 Dojo 和 Closure。当然,信息量(尤其是在各种版本的上下文中)只是压倒性的。
有没有人有关于在 MVC2+ 风格的应用程序的上下文中使用诸如这些工具的任何好的指导资源?比如哪些衔接好,哪些门槛最高,个人成功或失败的故事等等。
javascript - 使用 google 闭包库将 url 打开到拆分面板中
此解决方案必须使用 google 关闭 javascript 库,而不是任何其他 javascript 库。
当 url 加载时,我想动态打开一个拆分面板,其中一侧包含 iframe 中 url 的内容,另一侧包含有关正在发生的操作的日志信息。
下面是使用 google 闭包库的拆分面板的一般设置,但我不确定如何添加 iframe 并将其源设置为当前页面 url。
autocomplete - 使用 Google Closure AutoCompleteBasic 时文本框的值不完整
我对表单上的一些文本框使用 Google Closure 的 AutoCompleteBasic。当用户在输入一两个键后填写文本框,然后使用箭头键选择自动完成的建议之一时,文本框的值似乎就是用户输入的任何键,尽管表单呈现完整文本框中自动完成单词的文本。我使用 document.getElementById(id_of_textbox).value 来获取值
- 这是自动完成和文本框交互的预期行为吗?
- 我怎样才能得到完整的字符串而不是前几个击键?还是有其他方法可以读取该值?
javascript - 使用 Google 闭包的 Ajax 调用
我是 Google Closure 库的新手,我正在尝试模拟类似于 Jquery 的 $.ajax 函数的东西。这是我尝试过的以及我得到的回应。
触发器来自 Chrome Extensions 右键单击
这会触发 fun1 函数,定义如下:
getAjaxData 函数如下。
但是当我调用 getAjaxData 函数时出现此错误。
谁能告诉我哪里出错了。我检查了需要为 xhrio.send 函数传递的参数类型,它具有字符串类型。
ajax - IE 中的 Google Closure XhrIo 问题
以下代码在 IE 中不起作用,在我添加try
块后,它会发出警报Error: Could not complete the operation due to error c00ce56e.
。
javascript - 使用 Google 闭包库防止事件传播
使用谷歌闭包库:
如何处理element
例如 a 的单击,但在用户单击该元素的子元素时div
防止触发。event handler
例如,在下面的代码中,我想event handler
在用户单击时触发,div1
但当他/她单击“span1”时,我希望event handler
在不触发div1
.
更新
JS代码:
HTML 代码:
javascript - 谷歌关闭 Ajax 内容
如何XHR
在 a 中显示 responseText的 HTML 内容DIV
并去掉它的<script>
标签并将它们附加到head
标签中?(使用谷歌关闭)
类似于Prototype JS 中的extractScripts。
json - 在高级模式下使用 Google Closure 的第 3 方 JSON?
我在尝试重命名我的 JSON 属性时遇到了闭包编译器的高级优化问题。我正在使用丰富的自动完成控件,并使用从我的操作返回的 JSON 来提供它,其中包含具有姓名和电话属性的联系人。Closure 编译器在我的方法和模板中重命名 Name 和 Phone。在该方法中,我可以通过使用属性名称作为对象的字符串键来绕过它,但我不知道如何使用模板来做到这一点:
我的 JSON 对象具有属性“Name”和“Phone”的全名,但该函数将它们重写为“Hx”和“Az”之类的东西。我的模板同上:
如果我将这两行添加到 makeRow 函数的开头,它会将压缩名称设置为原始名称中的正确值:
这样做在空间和性能方面似乎都很浪费。此外,我无意为我的所有 JSON 对象执行此操作,我计划将来在我的应用程序中使用很多(这只是一个简单的测试)。我不知道如何将新名称映射到旧名称。我可以创建一个源图,但是只有一堆数字,我不知道它们是什么意思。如果我能弄清楚,那么也许我可以在 C# 中编写一个简单的属性映射器来创建具有缩短名称的动态对象。
如果我必须使用简单的优化模式,考虑到闭包库中所有对象和属性的冗长名称,这将很难。它应该很简单。我认为如果他们有一个 @json 标签而不是 @param 会阻止重命名,或者有一些其他信号让 @param 不重命名对象的属性,那就太好了:
会成为
我发现我可以通过创建一个 externs.js 文件并在编译时指定它来使属性名称保持不变:
我认为任何具有这些名称的对象属性都不会被压缩,是这样吗?我想我可以写一些助手来生成我将使用的类的长属性名称列表。此外,我可能喜欢在某些事情上使用动态类型,并且担心我可能会忘记或拼错属性名称。
编辑:
不是项目想要支持的东西,他们建议将对象作为参数,如下所示:
google-closure - 是否可以在 Closure 模板中创建对象?
我刚刚开始使用 Google Closure 做一些工作,我想将选择字段的创建移到它自己的模板中,并使用以下内容调用该模板:
并且templates.utils.select
模板将具有selected
为正确选项设置属性的逻辑。不幸的是,我得到一个“并非所有代码都采用 Soy V2 语法(找到标签 {{param options: [ {name: ...' 异常。
我假设我可以使用将 options 参数传递给调用模板的变通方法,但是我需要确保涵盖所有进入模板的方法,这将变得非常乏味。
此刻我想我必须和
这也很乏味,但至少数据在一个地方。
有没有更好的办法?
javascript - Google Closure Compiler 解析错误:`css({float:'left'})` 的属性 ID 无效
我正在使用 Google Closure Compiler 应用程序(命令行界面)。当我运行它时,我收到以下错误。