问题标签 [angular-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.

0 投票
1 回答
3430 浏览

angularjs - 指令模板值未更新

我正在设置一个这样的指令(超时功能只是一个演示):

当 timeout 函数运行时,HTML 不会更新,值保持在06:00. 当变量更新时,如何让模板更新?我是否需要在scope链接属性的部分中以某种方式链接它?

0 投票
3 回答
9963 浏览

angularjs - ng-class 如果对象存在

如果对象存在,我们如何激活类。我有一个 json 数组,如果该特定数组存在 image_id,我需要在其中激活一个类。

此处类测试处于活动状态,但如果 image_id 存在,则会激活 classonimage 以修改少数 css 属性。

因此,如果它包含图像,我想在这里对故事进行一些更改。我们如何在 ng-if 上激活 ng-class。我们怎样才能做到这一点?

0 投票
2 回答
2409 浏览

javascript - 如何将非字符串值传递给 Angular 指令?

我有一个自定义的角度指令,它以图形方式表示我的 web 应用程序中的“活动”。我这样使用它:

我的指令有一个独立的范围并声明model如下active

我不担心model属性,但我的active属性总是被视为字符串。当currentActivity == act为真时,则active保存字符串值"true"(而不是布尔值true),否则"false"(而不是false)。

这意味着虽然它在概念上是一个布尔值,但我必须将它视为一个字符串。例如,我想ng-class="{activityActive: active}"改写ng-class="{activityActive: active == 'true'}". 现在,如果我忘记了额外的部分,这总是评估为真,因为两者"false"都是"true"真实的。

有什么办法让我获得这样的非字符串属性?实现这一目标的最佳方法是什么?

0 投票
2 回答
564 浏览

angularjs - 从选择切换到输入的指令 - 观察不触发

我正在尝试创建一个具有选择(下拉菜单)的指令,当您选择其中一个选项时,它将改为输入。

下拉列表的值为 1-12,其中一个值为“更多...”,当用户选择“更多...”时,选择应更改为输入。

问题是变化永远不会发生。

我在 plunker 中有我的代码供人们玩:http ://plnkr.co/edit/3SyFIYULDHMKgkJmtPtP?p=preview

我也用 ng-switch 尝试过,但也没有运气:

0 投票
1 回答
682 浏览

javascript - AngularJS & D3 : D3 多次加载的 Angular 指令

我为 d3 强制有向图编写了一个角度指令。 代码在这里。 我使用 $log.log("xx"); 调试代码。由于某种原因,我意识到该指令多次加载。对于与指令绑定的 mg 控制器,我有 2 个工厂,每当控制器初始化时都会调用这两个工厂。通过使用$log.log("xx");我意识到当pay 加载时,d3 指令至少加载6 次,每个工厂加载两次,之后加载两次。我“绕过”的方式是使用d3.select("svg") .remove();所以我的页面不会有重复的svgs。但这极大地影响了性能。此外,我在同一控制器下的同一页面中添加了一些装扮过滤器,我注意到每当过滤器运行时,d3 指令都会重新加载。过滤器与 d3 指令无关,除了它们在同一个控制器下。(我认为过滤器运行时控制器不会重新加载。)

我相信问题出在我自己link: function身上。它看起来很乱,但实际上只做两件事:1)生成数据,然后将其提供给 d3 2)做一些 d3 并生成图形。

我将两个函数放入$scope.fdg并在template:'<div>{{fdg()}}<div>'. 这可能是一个非常糟糕的做法,但我想不出其他方法来调用该函数。

我试图调用这两个函数

直接在link: function这样的:

奇怪的是,$scope.tags是空的,“[]”和“标签”是未定义的。我在视图中传递了“标签”,<forcedirected-graph tags="tags" style="overflow: hidden;"></forcedirected-graph> 我真的无法理解为什么函数无法获取参数。这就是为什么我愚蠢地使用$scope.fdg.function()...包装这两个函数,以便它们可以访问从视图传递的参数。

我有一些其他(d3)指令可以正常加载。我尝试使异常 d3 指令的模板与那些工作指令相匹配,但我失败了:((我对参数/范围在指令链接中的实际工作方式感到困惑)。

更多完整代码:这里这里

如果我能找出问题所在,那就太好了,这样我就可以对 Angular 有更深入的了解。Angular 真的很棒:)

提前致谢!

0 投票
1 回答
71 浏览

angularjs - 指令在 AngularJS 中看不到元素

我很难理解为什么我的指令似乎无法正常工作。这是问题的快速概述:

我使用包含 Angular 元素的 Ajax 加载 HTML。Ajax 响应是 $compiled,所以这些元素可以工作,但问题是我必须用 0 秒超时。

和js:

在我用 setTimeout(..., 0); 包围它们之前,将找不到上面的 foo-bar 元素。

有人可以告诉我是否有更好的方法可以在没有 setTimeout 的情况下访问它们?

0 投票
4 回答
7503 浏览

angularjs - 在第一次和第二次单击角度 js 上执行不同的事件

我有一种情况,我需要在第一次和第二次点击 div 时执行不同的事件。在第一次单击时,div 将被展开,在第二次单击时,它将被重定向到它的详细信息页面。div 包含帖子的详细信息。

直到现在我在第一次单击时扩展 div,然后在双击时我将它重定向到它的详细信息页面。

最好的方法是什么。

现在我的想法是在 ng-click 上创建一个计数器,然后执行事件。我们可以在 DOM 端执行它吗?

是否有任何其他指令可以让我有条件地执行select(comment._id) changeurl(user.username,data.type,comment._id)或如何有条件地调用这些函数?

更新:关于戴安娜的建议,这里是更新状态:

这里我没有来自 ng-repeat 的 div,这里我有两种根据数据显示的布局。

}

我尝试提供索引来运行和操作它们。由于嵌套的 ng-repeat 我得到索引'0'。.

0 投票
1 回答
122 浏览

javascript - Angular Isolate Scope and Attributes

In the following plunk:

http://plnkr.co/edit/ss3HTb?p=info

I am attempting to bind an attribute to an isolate scope. However, it is not working. I'm wondering if anyone knows why that is?

I've looked through several resources, including: Need some examples of binding attributes in custom AngularJS tags and http://www.sitepoint.com/practical-guide-angularjs-directives-part-two/

0 投票
2 回答
7854 浏览

javascript - 重新加载控制器事件的​​指令

我有一个指令,它在加载时通​​过 ajax 获取数据。但是在控制器中发布一些数据的事件之后,指令应该使用新的 ajax 数据重新编译,以便可以反映更改。你能帮忙吗?

我在指令中有一个编译函数,它获取数据并将其放入 HTML 文件并生成标记。

然后我在控制器中有一个保存评论功能,它保存了一条新评论,因此指令获取了新数据。

这是指令的编译部分。我希望通过正常的控制器事件调用它。

0 投票
1 回答
98 浏览

javascript - 仅当不在 div 中时才需要运行指令

我有一个名为的指令menu,只有当它们不是菜单元素的子元素时,我才需要执行他们的代码。

HTML

指示