问题标签 [angularjs-compile]

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.

0 投票
1 回答
1437 浏览

angularjs - AngularJS模板替换指令不起作用

我有一个模板指令几乎可以按照我想要的方式工作,简单的版本可以工作:-

扩展到

但是,如果我嵌入其他指令,它们不会按预期完全工作。

请参阅我的 plunk http://plnkr.co/edit/dLUU2CMtuN5WMZlEScQi?p=preview

在指令的链接函数结束时,我 $compile 生成的文本/节点适用于 {{scope interpolated text}} 但不适用于使用相同范围的嵌入式指令。

我需要这个的原因是因为我将 ng-translate 用于现有的 ng-app,并且我想使用现有的英文文本作为翻译查找的键。一个不常见的翻译案例是我们有如下 HTML(从应用程序中提取),据我了解,[[#ageInput]] 和 [[#agePeriod]] '参数'可能出现在其他语言的不同位置-translate 目前对此场景没有真正的支持。

非常感谢任何帮助。

当您是新手时,我喜欢必须经历这些场景,因为它确实迫使您了解正在发生的事情。我现在让它工作了,基本上我之前的指令我找到了几种替换 html 的方法,希望 Angular 能神奇地把所有东西都整理出来。现在我对嵌入有了更好的理解,特别是我让它按需要工作的嵌入函数。传递给 $transcludeFn 的克隆元素已经附加了作用域并且已经被 $compiled,所以我的函数现在解析模板文本并生成单独的 textElement 并移动参数元素以适应模板。

我目前的解决方案

0 投票
1 回答
5676 浏览

javascript - $compileProvider.debugInfoEnabled 如何设置为 false 以提高 angularjs 1.3 中的性能?

我从角度网站阅读了有关debugInfoEnabled的文档。仍然不清楚概念,$compileProvider.debugInfoEnabled(false)内部角度配置如何通过删除元素级别类(角度指令)绑定(例如ng-scope和)来提高应用程序的性能ng-isolated-scope

有谁知道,如何通过将 debugInfoEnabled 设置为 false in 来提高性能$compileProvider?任何人都可以帮助我清除关于$compileProvider.debugInfoEnabled角度 1.3 的角度特征的概念吗?

任何帮助将不胜感激,在此先感谢:)

0 投票
2 回答
168 浏览

javascript - 以编程方式在指令中添加指令

我想将我的指令的另一个实例附加到父指令中,但我不能使用 $apply 重新编译我的指令。

我想我想念这里的某个地方:)

我的 HTML 代码

我的 JavaScript 代码

这是摆弄问题

0 投票
1 回答
53 浏览

angularjs - 为什么当`compile:`似乎工作正常时我需要$compile

查看http://jsfiddle.net/3jvoL4ew/

(注意:我知道它可以用 a 来完成template:,但这不是我的问题)

它包含一个指令,该指令将一个按钮和一个文本添加到它所使用的元素中:

它可以工作,但定义此类指令的通常方式是:

所以如果compile:在 ngRepeat 中使用 using 更简洁、更高效,为什么人们推荐 using$compile呢?

0 投票
1 回答
1929 浏览

angularjs - Angularjs:无法动态生成基于 c3 指令的图表

我正在尝试使用 c3 图表指令动态创建 c3 图表。C3 图表指令工作正常。但是,单击按钮时创建的动态图表不起作用。任何人都可以建议我哪里出错了吗?请在http://plnkr.co/edit/wWJx3zU3Sm1cN9ZCtvoh?p=preview找到我的 plunker

我正在编译我的 c3 指令,如下所示:

0 投票
1 回答
968 浏览

javascript - angularjs 子指令 DOM 加载速度不够快

嗨,我有嵌套指令,其中有一个父指令及其可以被嵌入的子指令。我的问题是当尝试在父链接函数中查找一些 dom 元素时,除非我设置超时,否则它不会返回数组。看起来子渲染/嵌入的速度不够快。那么有没有办法在不使用超时然后调用 find 子元素的情况下解决这个问题?

Plunker: http ://plnkr.co/edit/sS5cSMboSV2mjlRxsgO8?p=preview

0 投票
1 回答
567 浏览

javascript - 为什么使用 $compile 使工厂执行多次

在我的代码中,我需要从 javascript 回调函数内部编译从另一个 api 返回的 html。

以下是我的代码的简化版本。我正在使用一种工厂方法,它使用 $compile 和 $rootScope 重新编译任何元素。

这个设置的奇怪之处在于编译函数使数据工厂执行多次。这是什么原因?这种编译动态html的方法有什么建议或任何缺陷吗?

这是一个 plunker 链接http://plnkr.co/edit/D32kCS4BkslvpBsRtFoS

0 投票
2 回答
7814 浏览

angularjs - 收到 $rootScope:inprog 错误,但它需要 scope.$apply 才能工作

有没有办法在下面的代码段中应用范围而不会引发错误?(并且没有 hack 和解决方法,例如try/catch$timeout或硬编码 BONJOUR)

如果没有SCOPE.$apply(),则显示警报{{HELLO}}而不是BONJOUR

0 投票
0 回答
1622 浏览

angularjs - 以编程方式创建新的隔离范围

我正在尝试创建弹出 html 以进入leafletjs 标记弹出窗口。

我有以下部分:

和以下指令:

我有一个控制器,它提供了一个函数来为我要放置在地图上的每个标记生成 html:

完美运行。很棒吧?

我在几个地方读到不建议手动创建自己的范围,因为您必须确保您也手动销毁它。

假设我的地图上有一堆标记,每个标记都有一个弹出窗口。我是否需要跟踪我在控制器中创建的所有新范围并对它们调用销毁?什么时候?仅当我的标记从地图上移除时?

我可以跳过 angular 并使用 jquery 构建整个 html 元素并将 onclick 附加到函数,但这也不漂亮。为什么要跳过角度?

似乎过于复杂,这可能意味着我正在努力做到这一点;)

0 投票
1 回答
430 浏览

angularjs - Angularjs,需要将动态模板形成和多个指令的编译代码从控制器移动到自定义指令的最佳解决方案

我需要在标签单击时在单个页面中显示多个 angularjs 指令。它可以是 c3 图表指令和 ng 网格指令的组合。我正在控制器中准备具有所有这些相关参数的模型,然后形成模板,然后在控制器本身中编译,这完全可以正常工作。当我意识到在控制器中进行 DOM 操作不是一个好习惯时,我正在尝试在自定义指令中进行操作。

该指令应支持以下功能:

  1. 模板应该是 C3 图表指令的组合。
  2. 该模板还可以具有 Angularjs ng Grid 指令以及 c3 图表指令。
  3. 将来我还想使用 Good Map 指令以及 C3 图表和 ng 网格指令。
  4. 并且其中一些指令应该支持自定义下拉菜单。

现在我已经在我的控制器中使用了以下代码,它运行良好。

为了简单起见,我只提供了一些示例代码。基于dashletteId,我有一些特定的要求,我根据dashletteId动态创建模板,所有这些代码对我来说都很好。现在我的目标是将所有这些模板形成和编译代码从控制器移动到自定义指令,我正在为此寻找最佳解决方案,任何人都可以建议我一些指向最佳解决方案的指针。

对于特定用户,当他单击任何选项卡时,必须为编译形成什么模板是预定义的。所以我可以在 ng-init 函数调用或选项卡的单击(即选择)函数调用期间得到它。

以下是我的 ng 网格模板形成的示例代码。

所以在一个页面中我需要显示四个指令,它可以是 3 个 c3 图表和 1 个 ng 网格表指令,或者 2 个 C3 图表和 2 个 ng 网格表等,这取决于用户做出的预定义选择。

以下是我的自定义指令的初步代码,在进一步研究之前,我想从其他人那里获得更好的方法。在我的链接功能中,我需要在选项卡单击或 ng-init 阶段等时从控制器动态获取模板。

如果我需要进一步澄清我的问题,请告诉我。请提供一些示例代码的任何说明。