问题标签 [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 回答
3607 浏览

javascript - AngularJS 指令可以从动态内容中获取类名吗?

http://jsfiddle.net/xKU5R/

在上述情况下,我希望从( )cls中以相同的行为拾取具有类的元素,并显式设置一个。ng-repeatng-bind-html-unsafe

我想知道我在这里做错了什么?

0 投票
1 回答
48 浏览

javascript - 如何编写 ngBindCompile 指令?

如何编写类似于 ngBindTemplate 的指令,而不是采用作为模板的字符串,而是采用包含模板的变量?IE:

现存的:

来写:

在哪里var="{template}"

提前致谢!

0 投票
1 回答
1424 浏览

javascript - 如何在指令中使用innerHTML插入的html上使用ng-bind

我做了一个自定义指令,ng-repeats里面有两个。一个ng-repeat嵌套在另一个内部。我得到了代码,它在 chrome 中运行良好,但在 iPad 和 iPhone 上运行缓慢。

有 10 个部分,每个部分 5 行,在滚动和更改绑定时需要非常快。我认为减速来自通过绑定的所有循环,但用户输入时只需要更改一个数组。页面加载后,其余的绑定永远不会改变。

所以我试图找出一种方法来加载嵌套的无序列表,同时只绑定一个变量。这是我的指令的伪代码。

如您所见,我正在尝试生成 html 内容,然后使用 innerHTML 将其插入。问题是ng-bind当我这样做时它不起作用。我又试了$compile一次,但这并没有改变任何东西。

有没有人有更好的方法?我不在乎解决方案有多么可怕,我只是真的需要应用程序的这一部分超级快。主要的是我不想要ng-repeat,除非有办法让它在加载时做它的事情,然后再不循环任何东西。

我想以最 Angular 的方式做到这一点,但我意识到我可能不得不做一些完全违背 Angular 哲学的事情

0 投票
1 回答
1788 浏览

angularjs - AngularJS - 手动编译与自然编译

似乎很普遍,您不需要经常手动编译元素(通过 $compile 服务)。由于一些动态驱动的 html,我们有一个指令在链接函数中进行手动编译。像这样的事情(动态 html 的实际检索要复杂得多):

我们已经开始遇到一些性能问题,因为有一个页面多次发出这个指令,每次编译需要 300 毫秒左右。

为了更好地理解“幕后”发生的事情,从而做出更好的设计决策,我的问题是在链接功能中间进行这种手动编译与提供带有模板的指令并让角度自然地编译它?

这是一个演示我正在谈论的两个场景的小提琴:http: //jsfiddle.net/KNLea/

我认为我们可以重构我们的动态 html 生成,以便它构造一个字符串,然后我们可以将它用作模板。上面的内容被更改为这样的:

我只是想了解两者有什么根本区别,以及我们可以预期的性能提升(如果有的话)。它根本没有区别吗?当 Angular 编译模板时,它是否与 $compile 服务做同样的事情?或者模板的自然编译是否存在潜在的差异,会影响性能?

0 投票
2 回答
1825 浏览

jquery - 在AngularJS中动态编译HTML片段时如何绑定事件处理程序

我正在使用带有 AngularJS 的 OpenLayers,一切都很顺利,直到我最终开始触摸弹出功能。

我知道如何使用$compile服务使动态内容通过以下方式显示在弹出窗口中:

但我现在正在努力处理事件处理程序,如果我更改template为(注意输入和ng-click跨度之后):

并在中定义事件处理程序$scope

但无法触发事件。我非常怀疑使用content.html()angularjs 会丢失一些 angularjs 关心的重要信息。当我尝试以下代码时:

该片段可以按预期完美运行(ng-click 也可以在此处使用)。这两种用法之间的唯一区别是:contentcontent.html()

但我不能使用content给定的OpenLayers.Popup.FramedCloud期望静态 html 内容字符串。

有什么想法吗?非常感谢。

0 投票
0 回答
156 浏览

angularjs - 在 Chrome 中渲染 FB 画布应用程序时,Angular 1.2.9 编译错误

我在 chrome 上渲染 Facebook 画布应用程序时遇到了问题 - 该应用程序在 Firefox 或 Facebook 之外运行良好。内容是使用 angular.js (1.2.9) 渲染的,它在编译 DOM 时会崩溃。

此问题仅在对画布应用程序的第一次请求时发生 - 如果重新加载页面(软重新加载),一切正常。我相信由于某种原因,Angular 在页面仍在加载时开始编译节点(附加的堆栈跟踪和断点图像 - https://imgur.com/a/iDpSc)。有什么想法吗?谢谢。

0 投票
3 回答
5668 浏览

angularjs - 带有所需控制器的 Angular $compile

我有一个复合列表指令 - 即 - 一个可以是列表本身的列表项。
父指令定义控制器:

(项目)列表需要父控制器本身可以正常工作(为什么不应该......):

具体项目也是如此,这也很好:

一个项目可能是一个组合,在这种情况下它自己创建一个“列表”。这个组合是通过$compile (ing) 链接函数中的一个列表项来完成的:

引发异常:
找不到指令“列表”所需的控制器“父级”!

原因很明显 - $compile 函数没有提供控制器,因此无法解决“父”的要求。
所以我尝试手动提供控制器:

它不会引发异常,但在需要时仍不提供此控制器。

知道如何使 $compile 函数接受也应该评估的外部控制器吗?

0 投票
1 回答
52 浏览

angularjs - Angular.js 编译包含在文本中的所有指令

我的应用程序正在将一堆文本加载$http<div>. 在该文本中可能有角度指令:

<my-directive>包含在我的应用程序的代码中,但它表现为简单的文本。我知道这是正常的,因为它必须先编译。但是我不知道如何轻松地做到这一点(我只能想到用正则表达式解析文本,将找到的指令一一编译成新元素,然后以正确的顺序重新附加整个东西,这似乎很复杂)。

编译 div1 中所有指令的最佳方法是什么?

0 投票
1 回答
6032 浏览

angularjs - 无法执行 $scope.$eval

我有一个简单的字符串如下:

该字符串在指令的link函数中定义。

现在,在link函数内部,我执行以下代码:

我的下一步是处理$compile数据并将其与范围相关联。

但是,当我执行以下操作时出现错误$eval

但是,如果我查看位于此处的文档,我似乎已经正确执行了这些步骤,但字符串没有评估。

编辑:我正在使用文档中的以下示例:

但是,我没有使用,$watch因为我不需要观看任何表达式并且已经拥有模板(templateString)。

0 投票
1 回答
498 浏览

javascript - AngularJS 编译的代码留在“后面”

我注意到对我来说似乎是一个错误,但可能更多的是我滥用$compileAngularJS 中的服务:我有一个名为“动态”的指令,它编译 angularjs 代码并将其显示到一个 div 中。我在这种情况下编译的代码包含ng-controllers并且那些控制器正在监听事件。问题是显然控制器在被替换后并没有“死”,因为应该消失的控制器仍然会对事件(如$routeChangeSuccess或任何其他事件)做出反应。这是一个显示问题的工作plunkr 。让我们看看我的问题的示例代码:

我正在使用的指令

主控制器,其次是我包括的控制器:

现在,如果我打电话firstButton()then secondButton()then checkButton(),而不是只alert(2)收到 ,我会收到两个警报。如果我点击按钮 1/2/1/2/1/2/1/2,它将向我显示与我点击的按钮一样多的警报。

我在这里做错了什么?

谢谢,希尔纽斯