问题标签 [angularjs-controller]

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 回答
512 浏览

angularjs - Angular 使用另一个指令的控制器?

如果我有两个指令,并且需要其中一个使用另一个的控制器,那么以角度完成类似操作的最佳方法是什么?我正在尝试使用require: otherDirective我在文档中看到的东西,但我得到了一个

错误:没有控制器:dirOne

从下面的例子。我的印象是,通过在 require 语句中指定 dirOne,dirTwo 将可以访问 dirOne 的控制器。我在这里做错了什么?

这也是一个plunkr

0 投票
2 回答
10887 浏览

javascript - 在 angularjs 控制器中定义的函数的函数未定义错误

我查看了其他“未定义功能”问题,但似乎找不到适用于我的用例的问题。我正在使用 angular.js。

我有一个最初为空的 div,#mylist 我在 js 中动态填充。我在控制器中定义了一个函数,我将其分配给onChange复选框的事件。

这是完整的文档:

运行时,单击复选框会导致函数未定义错误。

我在这里想念什么?谢谢。

0 投票
3 回答
9087 浏览

angularjs - 使用 AngularJS 和 jsPlumb(在 AngularJS 控制器中使用 jsPlumb 函数)

所以我有一个正在处理的项目,它要求我使用 jsPlumb 进行图形元素连接,并且我正在完全使用 AngularJS 构建我的应用程序。

如果我想将另一个库的代码包含到我的控制器中(以启动一些 jsPlumb 代码,比如在 ng-click 上)或我的 AngularJS 代码的任何其他部分,要遵循什么程序?我应该这样做还是为什么不这样做?

0 投票
1 回答
1001 浏览

angularjs - AngularJS 和 ng-repeat 元素在 DOM 中尚不存在 - 获取 NULL exepction

所以我试图使用一个外部库函数在我的 ng-repeat 连接到的一个控制器中的 DOM 中创建一些操作。问题如下:

我在我的控制器中调用该外部函数,该函数将元素添加到 ng-repeat 数组中,从而将新元素添加到 DOM 中。但是,当我在控制器内部时,该元素还不存在,即使我已将其添加到数组中。一旦元素实际附加到 DOM,而不是实际添加到控制 ng-repeat 的数组中,如何绑定要调用的外部函数?

我想在元素实际创建后触发事件。有什么建议么?

让我知道你是否想看看这个想法。

0 投票
2 回答
9887 浏览

angularjs - AngularJS - 如何避免使用 $timeout 来等待创建元素?

这是想法:

所以我试图使用一个外部库函数在我的 ng-repeat 连接到的一个控制器中的 DOM 中创建一些操作。

最新的 jsFiddle 工作但......

http://jsfiddle.net/GeorgiAngelov/KRbdL/150/

所以基本上我得到了@BrandonTilley 的帮助,但我试图避免使用 $timeout 因为我不认为这是一个可行的解决方案,而是一个 hack。

在@BrandonTilley 的帮助下制作新小提琴

添加了 onload 侦听器,我也试图通过 getElementById 获取新元素或其父元素,但它返回的只是 NULL。

http://jsfiddle.net/GeorgiAngelov/KRbdL/143/

问题如下:我在控制器中调用该外部函数,该函数将元素添加到 ng-repeat 数组中,从而将新元素添加到 DOM 中。但是,当我在控制器内部时,该元素还不存在,即使我已将其添加到数组中。

一旦元素实际附加到 DOM,而不是实际添加到控制 ng-repeat 的数组中,如何绑定要调用的外部函数?

问题来了,我有模板 1 调用模板 2,然后模板 2 调用模板 3,然后模板 3 调用模板 2,一旦模板 3 完成渲染模板 2,我想将模板 3 中的一个元素连接到模板 2。

我创建了一个链接到 template3 的指令,我使用了 $last 属性,但它仍然无法正常工作,因为 template3 加载但我不知道 template2 何时完成加载。此外,element.ready() 甚至没有启动。我还尝试使用 $timeout 来破解它并删除 element.ready,但它仍然给了我子元素尚不存在的错误。我不想使用 $timeout ,所以我正在寻找一个更实用的解决方案来解决我的问题。

此外,当我调用该函数以创建新的第一级元素时,我尝试调用 jsPlumb 库,但它未定义 parentNode。我在 addChild 函数中将其注释掉。

ng-repeat ng-include=template2 模板 3 中使用的指令

这是我为帮助您可视化我要完成的内容而制作的图表(查看右上角的文字)

在此处输入图像描述

0 投票
0 回答
336 浏览

angularjs - AngularJS - 创建一个指令以在当前元素附加到 DOM 时触发事件(函数)

我试图找到一种方法来检测元素何时最终附加到 DOM?是否有任何指令可以创建并附加到该元素,以便检测附加的时刻?通过创建元素,我的意思是 ng-repeat,而 onload 和 $last 对我不起作用。

0 投票
2 回答
869 浏览

angularjs - AngularJS - 使用控制器时停止工作

所以我现在才开始接触 angularJS,在我开始使用带有 ng-repeat 的控制器之前,测试一切都很好。似乎当我使用它时它只是没有连接到控制器。

我检查了一切。范围很好,angular.js 库的位置很好,但由于某种原因列表不会显示。这甚至发生在一些复制粘贴示例中,因为我用这些示例查看我想出的内容是否有错误,还使用了旧版本的库,效果相同,列表中没有任何内容。

0 投票
1 回答
60 浏览

javascript - 如何根据文档创建 AngularJS 控制器

我是 AngularJS 的新手,我试图弄清楚为什么某些文档代码对我不起作用。虽然下面的全局函数控制器对我有用,但文档说我应该通过 Angular 模块创建控制器。

这是指向具有相同代码的 JSFiddle 的链接。

工作 JS 控制器:

损坏的 JS 控制器:

HTML 文件:

0 投票
0 回答
598 浏览

angularjs - AngularJS - 当 ng-view ng-repeat 依赖于 $routeParams 时“达到 10 个 $digest() 迭代”

我对 Angular 很陌生,这是我第一次处理路由,所以如果我的问题有点令人困惑,请原谅。这个应用程序的实际逻辑和结构要复杂得多,并且我正在使用多种服务,但这是我遇到问题的部分的总体思路。我将衷心感谢您的帮助!谢谢。

解决了

我正在递归地添加相同的模板。在模板中,我将 ng-repeat 模板更改为另一个模板,它运行良好。 http://jsfiddle.net/GeorgiAngelov/9yN3Z/111/

更新的 jsFiddle:http: //jsfiddle.net/GeorgiAngelov/9yN3Z/106/

感谢Chandermani,我更新了我的小提琴(我删除了所有控制器并只留下了一个副本)但现在每当我单击“添加根”按钮或单击某个部分时,我都会得到“10 $digest() 迭代”一直给我那个错误......不知道为什么。

所以我有一个应用程序,我的左侧有一个菜单,我可以在该菜单中添加更多称为部分的元素。该菜单部分项源自位于我的控制器中的名为sections的数组,当您添加一个部分时,它会将其添加到名为sections的数组中。

*部分的 HTML *

该数组中的每个对象都有另一个名为 root 的数组和另一个名为Add Root的按钮,我想将对象(元素)推送到我当前所在的任何部分,具体取决于 $routeParams id 变量

从路由器调用的 HTML 模板

0 投票
1 回答
4368 浏览

angularjs - AngularJS控制器或指令中的Jquery动画?

我在 AngularJS 中有一个应用程序,在我的一个观点中,我想实现一些 JQuery 动画..没什么太花哨的..只是隐藏/滑动 div ..这些 div 是从 ng-reapet 循环创建的,我需要访问 DOM元素以编写我的 JQuery 。我应该把我的代码控制器或指令放在哪里?我的代码示例: