问题标签 [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.
angularjs - AngularJS:通过配置对象获取模板并多次显示该模板的指令
我正在寻找创建一个自定义指令,它将模板作为配置对象的属性,并显示该模板给定的次数,并由页眉和页脚包围。创建此类指令的最佳方法是什么?
该指令将接收配置对象作为范围选项:
该对象(称为 config)使用两种方式绑定可选地传递给指令,如上面的代码所示。配置对象可以包括一个模板和一个数字,指示指令应该显示模板的次数。例如,考虑以下配置对象:
当传递给指令时,它会导致指令显示模板五次(使用 ng-repeat)。指令还在模板上方和下方显示页眉和页脚:
实施该指令的最佳方式是什么?注意:当您回复时,请在 Plunker 等代码游乐场中提供一个工作示例,因为我在探索的每个可能的实现中都遇到了问题。
更新,我探索的解决方案包括:
- 使用指令的链接函数来附加头部、带有 ng-repeat 的模板和页脚。由于某种未知原因,这会导致模板不重复的问题,并且整个解决方案似乎是一个 hack。
- 将模板从配置对象插入到指令本身的模板中间。事实证明这很困难,因为 jqLite 似乎已经从其基于 jQuery 的 API 中删除了所有 CSS 选择器的概念,这让我怀疑这个解决方案是否是“Angular 方式”。
- 使用 compile 函数来构建模板。这对我来说似乎是正确的,但我不知道它是否会起作用。
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
有没有更好的方法来等待延迟链接功能完成?
javascript - AngularJS:在编译之前获取指令的html内容
我正在创建一个指令,当用户单击按钮时显示模式:
指令模板:
指令用法:
所以在我编译指令之前,我需要抓住内容,显示按钮,当用户点击按钮时,我会显示包含<div id="modal-content">....
如何在编译之前获取指令内部内容并用模板替换它
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
angularjs - Transclude 不插值
我有一个指令,它包含一些 HTML 以提供一个人造上下文菜单。用法是这样的:
这将绑定一个事件侦听器#my-element
,右键单击该事件侦听器将显示context-menu
偏移量$scope.getOffset
返回的内容。
一切正常,除了插值字符串{{ label }}
没有扩展。假设 的$scope.label
值为'ABC'
。您看到的不是“ABC”,而是“{{ label }}”。但是,ngClick 似乎绑定正确。
请参阅此 plunkr 以获取代码和演示:http ://plnkr.co/edit/QDVAHkhrfsNpRcjTwCpM?p=preview
为什么是这样?
javascript - 如何在指令中为子元素添加属性
我有以下 plunkr:
http://plnkr.co/edit/M1uwZxZP7sXp5sPw7pxf?p=preview
我想要做的是:我想构建一个角度代码以在表单内自动生成输入,给定一个带有描述的 json 示例:
为此,我使用了一个自定义指令,将输入附加到标签
转弯
然后我添加任何其他验证属性,如 minlength 和 maxlength。
在我的 plunkr 中,我可以向 custominput 标签添加属性,如下所示:
但是我怎样才能将这些属性添加到输入标签(也就是说,custominput 的孩子)?
更新 1
这个问题可以概括为:
如何从指令中添加带有角度指令的 HTML 元素/属性
示例:转动这个
进入这个:
来自指令
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 进行了一些更新,但我无法找到解决问题的方法。任何帮助将不胜感激。
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
angularjs - KendoUI Popover $compile 问题
我有一个指令,它是 KendoUI kendo-tooltip 的包装器,我正在像这样实例化它:
在我的代码中,我将 my-directive-popover 替换为 kendo-tooltip,如下所示:
在预编译功能结束时,我当然必须编译它,以便将其识别为另一个剑道指令:
它在 Kendo 2014.2.903 上运行良好,但在最新的 Kendo 2015.1.429 上出现以下错误: