问题标签 [custom-directive]
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 - 如何将 ng-click 绑定到自定义指令并调用父函数?
我们正在使用 Angular 1.4.2,我正在尝试使用 ng-click 从指令中获取计数值,将其传递给函数,然后将其传递给父控制器。经过一番努力,它在 plunker 中工作,但不幸的是,当我尝试将此功能移回主代码时,我无法让控制器绑定到隔离范围。
应该很简单,但是我尝试将当前控制器注入指令并尝试创建一个新控制器,但是当我按下按钮时没有任何反应。
这是代码:
模板:
脚本:
这是我试图在主代码库中修改的模板代码:
这是我在指令中使用现有控制器作为父控制器的地方。它是在路由中定义的,而不是在 ng-controller 中定义的,并且已经用于此视图。
但是,它显然没有正确绑定,因为我从未使用 ng-click 命中指令或此函数。
就像我说的,我尝试在模板中添加一个新的控制器,然后我尝试将现有的控制器注入到指令中,但都没有奏效。我从指令中取出模板并尝试使用 ctrl-fn 将 ng-click 直接放入模板中,但我不知道如何将点击与对指令的 ctrl-fn 属性的调用连接起来都在模板中?这里的想法是将模板移动到它自己的 html 文件中并从指令中引用它,如:模板:“myFile.html。我试图尽可能地封装它以使其成为可重用的组件。
我没有太多使用自定义指令。
这是plunker的直接链接。
angularjs - Angularjs - 在一个指令完成所有内容后触发一个指令
我的要求
我正在通过指令生成模板。这里我将传递一些数据来生成模板。
我想在上述指令完成渲染后调用另一个指令。
angularjs - 如何使用带有参数的“&”在指令链接函数中调用控制器函数?
我正在尝试将参数传递给指令链接函数内部的函数,类似于以下问题: Angular: Calling controller function inside adirective link function using &
但是,虽然我已经看到了一些示例,例如:Passing Parameters from a Directive to a function,但我已经看到在指令内的链接中设置了参数值。但是,我还没有看到您在哪里传递原语,例如将数字作为参数传递给将其传递给控制器函数的指令。
我尝试了多种方法,但还没有弄清楚语法。
HTML 代码:
脚本.JS
我的 plunker 在这里:http ://plnkr.co/edit/6uDntNeqe0g343PmeCED?p=preview
在这个用例中,原语可以作为参数传入吗?如果是这样,我在这里错过了什么?
后果:
如果有人正在寻找这种语法:ctrlFn({count: 10})
在 angularjs 文档中,它在自定义指令下被提及:
通常希望通过表达式将数据从隔离范围传递到父范围,这可以通过将局部变量名称和值的映射传递到表达式包装函数来完成。例如,当对话框被隐藏时,hideDialog 函数会显示一条消息。这是通过调用 close({message: 'closure for now'}) 在指令中指定的。然后局部变量 message 将在 on-close 表达式中可用。
angularjs - 带有自定义指令templateUrl的Angular Js ng-repeat
我在带有模板 url 的 angular js 中使用自定义指令,代码链接在这里。问题是,如果我将 ngRepeat 传递给元素,那么 ngRpeat 不能使用模板 url,那么它就不起作用,但是如果我传入模板本身,它就可以工作。
twitter-bootstrap - 输入搜索词时,使用下拉菜单搜索配置文件的自定义指令消失
我编写了一个用于搜索配置文件的自定义指令,其中包括:
标题 div:
用于输入搜索词的输入文本框
结果项 div:
我需要在单击图像时像下拉菜单一样打开 drv。
因此,该指令确实在单击 img 时打开,并在单击文档中的其他位置时关闭,正如预期的那样。
问题
当单击输入文本框以输入搜索词时,以及单击标题 div 以及单击邀请按钮时,drv 也会关闭,但所有这些类型的单击实际上不应导致drv 被关闭。
应该关闭它的点击是点击自定义指令 div 之外的所有内容。
任何想法我应该如何做到这一点,而不涉及 $document 点击的听众并决定点击是否在驱动程序之外,保持纯 bs?
此外,如果我希望在单击邀请按钮时也关闭 drv,而不是在单击标题和输入文本框时关闭 - 应该怎么做?
谢谢
angularjs - 什么是 Angular js 编译器链接函数
我对取自 Angular JS 官方文档的行有点困惑:
编译:遍历 DOM 并收集所有指令。结果是一个链接函数。
我不清楚什么是链接功能?
他们是在谈论我们在自定义指令中编写的链接功能吗?
请举例说明。
html - 使用angularjs在两个选定日期之间过滤表数据时遇到问题
我正在根据两个选定的日期过滤表格内容。它确实过滤了日期,但结果不正确。dateRange 过滤器是在控制器中编写的。
生产控制器
视图.html
编辑: 脚本顺序
请检查转换后的日期值。produceDate 转换为数字格式时,它不在从日期和到日期之间。因此这里没有发生过滤。
angularjs - Angular JS - 使用 ul-li 元素作为单选按钮和复选框的自定义指令
这是我编写的一小段代码,我认为它可能对正在寻找类似功能的人有所帮助:
li 元素上的自定义指令 - 单击它们选择/取消选择 li 元素并在数组中生成选定对象(可以在控制器下收集)
JS 小提琴:http: //jsfiddle.net/AjayBunga/NBhn4/230/
单选(如收音机)和多选(如复选框)都已实现。请建议我是否可以优化任何代码,或者是否可以以更简单的方式完成,因为我是角度指令的新手。
提前致谢。
angularjs - 使用 'addtocalendar' 在 angularJS 中添加事件
我正在尝试学习 angularJS。我在数组中有一组对象。我正在使用这些对象创建动态内容。现在,当我单击每个 div 中的“添加到 Outlook”按钮时,我需要将它们添加到我的 Outlook 中。
我怎样才能在这里使用' addtocalendar '?
这是我到目前为止写的代码 -
angularjs - AngularJS:表格行/列上带有 ng-repeat 的表格
我需要从一组对象创建一个表,但我不想对表进行硬编码。例如,我不能这样做或这样做。我宁愿需要这样的嵌套 ng- repeats。但我的情况有点不同,因为我的列包含数组中的两个值。数据如下所示:
我想要表行中的数组中所有对象(始终具有相同结构)的值(始终是字符串),其中每个键应该是列名。像这样:
这是我想出的:
isUpdatable(propName)
如果此值是一个数组,则返回 true,否则返回 false。这将使td
该列中有两个 s 成为可能。
双列指令:
我希望这个指令td
用两个td
s 替换现有的当且仅当prop
是一个数组,否则什么都不做显示prop
(见td
上文)。
因为您在https://stackoverflow.com(人们发布还不能正常工作的东西的地方),所以您可能会猜到我当前的代码不能很好地工作。我也是 angularJS 的新手,基本上不了解自定义指令(可能还有大多数其他东西),所以如果有人能帮助我解决这个问题并提供解释,那就太好了。