问题标签 [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 投票
0 回答
97 浏览

angularjs - 将 HTML 模板绑定到 AngularJS 中的数据

我有一个简单的 HTML 模板,如下所示

我可以用一个数据对象将它编译成一个字符串吗,我不想将它与任何范围绑定。

喜欢

谢谢!

在此处添加了 Plunker

0 投票
2 回答
610 浏览

angularjs - AngularJS:通过配置对象获取模板并多次显示该模板的指令

我正在寻找创建一个自定义指令,它将模板作为配置对象的属性,并显示该模板给定的次数,并由页眉和页脚包围。创建此类指令的最佳方法是什么?

该指令将接收配置对象作为范围选项:

该对象(称为 config)使用两种方式绑定可选地传递给指令,如上面的代码所示。配置对象可以包括一个模板和一个数字,指示指令应该显示模板的次数。例如,考虑以下配置对象:

当传递给指令时,它会导致指令显示模板五次(使用 ng-repeat)。指令还在模板上方和下方显示页眉和页脚:

实施该指令的最佳方式是什么?注意:当您回复时,请在 Plunker 等代码游乐场中提供一个工作示例,因为我在探索的每个可能的实现中都遇到了问题。

更新,我探索的解决方案包括:

  1. 使用指令的链接函数来附加头部、带有 ng-repeat 的模板和页脚。由于某种未知原因,这会导致模板不重复的问题,并且整个解决方案似乎是一个 hack。
  2. 将模板从配置对象插入到指令本身的模板中间。事实证明这很困难,因为 jqLit​​e 似乎已经从其基于 jQuery 的 API 中删除了所有 CSS 选择器的概念,这让我怀疑这个解决方案是否是“Angular 方式”。
  3. 使用 compile 函数来构建模板。这对我来说似乎是正确的,但我不知道它是否会起作用。
0 投票
1 回答
356 浏览

javascript - 将带有 templateUrl 的指令编译成字符串并等待延迟链接功能

我想将$compile一段包含多个指令的 html 转换成一个字符串并将其发送到服务器。由于某些指令包含 a templateUrl,因此返回的链接函数会延迟。在这个问题(AngularJS: Using $compile on html that contains directive with templateurl)中,问题似乎已解决$scope.$digest(),这在我的情况下是不可能的(已经在进行中)。

我发现的唯一解决方案是使用超时,请参阅http://plnkr.co/edit/k3ZAYy1FhGUFXxXyrPvB?p=preview

有没有更好的方法来等待延迟链接功能完成?

0 投票
1 回答
5290 浏览

javascript - AngularJS:在编译之前获取指令的html内容

我正在创建一个指令,当用户单击按钮时显示模式:

指令模板:

指令用法:

所以在我编译指令之前,我需要抓住内容,显示按钮,当用户点击按钮时,我会显示包含<div id="modal-content">....

如何在编译之前获取指令内部内容并用模板替换它

0 投票
2 回答
1974 浏览

angularjs - 带有控制器的angularjs部分视图(javascript)

以下代码创建这样的错误

未捕获的错误:[ng:areq] http://errors.angularjs.org/1.3.15/ng/areq?p0=subCtrl&p1=not%20a%20function%2C%20got%20undefined

我该如何解决?

示例代码在这里 http://plnkr.co/edit/i3KmuFd09puvCyfqoX39?p=preview

索引.html

子.html

0 投票
1 回答
386 浏览

angularjs - Transclude 不插值

我有一个指令,它包含一些 HTML 以提供一个人造上下文菜单。用法是这样的:

这将绑定一个事件侦听器#my-element,右键单击该事件侦听器将显示context-menu偏移量$scope.getOffset返回的内容。

一切正常,除了插值字符串{{ label }}没有扩展。假设 的$scope.label值为'ABC'。您看到的不是“ABC”,而是“{{ label }}”。但是,ngClick 似乎绑定正确。

请参阅此 plunkr 以获取代码和演示:http ://plnkr.co/edit/QDVAHkhrfsNpRcjTwCpM?p=preview

为什么是这样?

0 投票
1 回答
2574 浏览

javascript - 如何在指令中为子元素添加属性

我有以下 plunkr:

http://plnkr.co/edit/M1uwZxZP7sXp5sPw7pxf?p=preview

我想要做的是:我想构建一个角度代码以在表单内自动生成输入,给定一个带有描述的 json 示例:

为此,我使用了一个自定义指令,将输入附加到标签

转弯

然后我添加任何其他验证属性,如 minlength 和 maxlength。

在我的 plunkr 中,我可以向 custominput 标签添加属性,如下所示:

但是我怎样才能将这些属性添加到输入标签(也就是说,custominput 的孩子)?

更新 1

这个问题可以概括为:

如何从指令中添加带有角度指令的 HTML 元素/属性

示例:转动这个

进入这个:

来自指令

0 投票
4 回答
6878 浏览

javascript - AngularJS 1.4:使用 $compile 插入列表时选择列表值未正确初始化

这里有一些快速的背景信息。我刚刚升级到 Angular 1.4。我正在使用用 C# 编写的 API 进行服务器端调用。

我页面的一部分显示了 2 个选择列表(项目和子项目)。两者都应该默认为“(选择一个 ______)”,我将其列为每个选择的第一个选项,“值”为 0。适当的 ng-model 变量初始化为 0。

选择列表的实际 HTML 代码是在服务器端使用字符串连接生成的,通过 $http 传递给客户端,并使用调用 $compile 的指令插入(一点也不理想,但我的客户端几乎把我锁住了到这个 API)。在 1.4 更新之前,一切都运行良好。

现在,我的项目选择列表默认为空。当我检查元素时,这就是我所看到的......

...与第一个“?数字:0?” 条目是当前选择的条目。我的子项目选择列表仍然初始化得很好,这使得这更加奇怪。

我知道在 AngularJS 1.4 的更新中对 $compile 进行了一些更新,但我无法找到解决问题的方法。任何帮助将不胜感激。

0 投票
1 回答
2481 浏览

angularjs - $compile(custom-directive) 生成的 HTML 不绑定 {{values}}

我想动态添加 Angular 自定义指令,但 $compile(directive) 产生的指令没有 2-way 绑定。

这是我的简化问题:我正在使用 MapBox,并且我想为标记的弹出窗口使用指令来显示例如标记的标题。MapBox 想要将 HTML 作为字符串放入弹出窗口中,所以我的想法是传递一个 $compiled 指令,例如$compile('<myDirective></myDirective>')($scope).html().

它用它的模板替换指令,但 {{values}} 没有解决。

我有这样的东西来创建弹出窗口

ctrl.createPopup(marker)调用控制器的一个函数,它会:

其中mapbox-marker-popup是指定如下的指令:

无论如何... mapboxMarkerPopup不工作。标题显示为{{title}}

[UPDATE2 - {{title}} 未解决]

这是JSFiddle

0 投票
1 回答
291 浏览

angularjs - KendoUI Popover $compile 问题

我有一个指令,它是 KendoUI kendo-tooltip 的包装器,我正在像这样实例化它:

在我的代码中,我将 my-directive-popover 替换为 kendo-tooltip,如下所示:

在预编译功能结束时,我当然必须编译它,以便将其识别为另一个剑道指令:

它在 Kendo 2014.2.903 上运行良好,但在最新的 Kendo 2015.1.429 上出现以下错误: