问题标签 [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 回答
25239 浏览

javascript - Angularjs单击并从列表中显示

我想创建一个简单的列表,当用户单击按钮时,值将显示在 span 元素中。

HTML & 控制器

我想动态显示点击艺术家的歌曲列表。这是正确的方法吗?

0 投票
16 回答
332040 浏览

javascript - AngularJS:如何在控制器之间传递变量?

我有两个 Angular 控制器:

我不能Ctrl1在里面使用,Ctrl2因为它是未定义的。但是,如果我尝试像这样传递它......</p>

我得到一个错误。有谁知道如何做到这一点?

正在做

也失败了。

注意:这些控制器没有相互嵌套。

0 投票
3 回答
124964 浏览

javascript - 在控制器中使用 $setValidity

我正在尝试对文件更改进行一些验证。这是我的代码:

查看/模板

控制器

但现在调用$setValidity不起作用。
有什么想法吗?

0 投票
4 回答
13468 浏览

angularjs - 如何为 2 个不同的视图重用一个控制器?

我已经定义了一个控制器,并将其应用于 2 个差异很小的视图。

角代码:

视图 1:

视图 2:

示例代码很简单,但是在我的实际项目中代码和逻辑很多。

View 1 和 View 2 具有几乎相同的功能,只有一些差异,但我确实需要在控制器中为它们中的每一个编写一些代码。

我不想为它们创建 2 个不同的控制器,因为它们具有大部分相同的逻辑。我不想将逻辑移动到服务中以在 2 个控制器之间共享它,因为作为服务的逻辑并不常见。

还有其他方法吗?

0 投票
2 回答
4665 浏览

angularjs - AngularJS:通过带有数组类型参数(复选框、多选等)的 $resource 发送请求

当我的 GET 参数中有一组复选框(client_status)时,我在尝试使用 AngularJS 中的 $resource 库发送正确序列化的 GET 请求时遇到问题。

这是我现在在控制器中的代码:

以上将发送以下 GET 请求:

但是,据我了解,以上似乎不是正确的格式。有人可以在这里指导我吗?以下是我的期望:

非常感谢您的帮助。

托马斯

0 投票
2 回答
4400 浏览

javascript - 从控制器内触发 jQuery DOM 操作的正确方法是什么?

所以我一直在阅读,从控制器中进行 jQuery 操作是不好的做法,但我不清楚为什么或如何纠正。

下面是来自 Youtube 教程的代码,即使是视频创作者的评论也是一个坏主意,但没有解释为什么并继续使用这种不良行为。

来自https://www.youtube.com/watch?v=ilCH2Euobz0#t=553s

解决方案

根据下面兰登的回答,我为自己的工作得出了以下工作代码,该代码略微源自上面的示例代码:

这在几个方面与兰登的回答不同。我想避免在ngClick回调中添加参数,所以我将它存储在thisProject. 此外,示例和我的代码需要destroy$http成功回调中调用,因此this不再相关,而是将单击的元素存储在thisElem.

更新 2

进一步更新了我的解决方案,以反映 funcComplete 实际上并未修改原始 $scope。

0 投票
10 回答
114983 浏览

angularjs - AngularJS:绑定到服务属性的正确方法

我正在寻找如何在 AngularJS 中绑定到服务属性的最佳实践。

我已经通过多个示例来了解如何绑定到使用 AngularJS 创建的服务中的属性。

下面我有两个示例说明如何绑定到服务中的属性;他们都工作。第一个示例使用基本绑定,第二个示例使用 $scope.$watch 绑定到服务属性

在绑定到服务中的属性时是否首选这些示例中的任何一个,或者是否有另一个我不知道的选项会被推荐?

这些示例的前提是服务应每 5 秒更新其属性“lastUpdated”和“calls”。更新服务属性后,视图应反映这些更改。这两个例子都成功地工作了;我想知道是否有更好的方法来做到这一点。

基本绑定

可以在此处查看和运行以下代码:http: //plnkr.co/edit/d3c16z

我解决绑定到服务属性的另一种方法是在控制器中使用 $scope.$watch。

$scope.$watch

可以在此处查看和运行以下代码:http: //plnkr.co/edit/dSBlC9

我知道我可以在服务中使用 $rootscope.$broadcast 并在控制器中使用 $root.$on ,但是在我创建的其他示例中,在第一次广播中使用 $broadcast/$ 不会被控制器,但在控制器中触发了广播的其他调用。如果您知道解决 $rootscope.$broadcast 问题的方法,请提供答案。

但是为了重申我之前提到的内容,我想知道如何绑定到服务属性的最佳实践。


更新

这个问题最初是在 2013 年 4 月提出并回答的。2014 年 5 月,Gil Birman 提供了一个新答案,我将其更改为正确答案。由于 Gil Birman 的回答几乎没有赞成票,我担心阅读这个问题的人会无视他的回答,转而支持更多投票的其他答案。在您决定最佳答案之前,我强烈推荐 Gil Birman 的答案。

0 投票
1 回答
828 浏览

angularjs - AngularJS如何将数据从一个控制器传递到不同的指令

我不确定我是否可以这样做或有更好的方法。我需要有人指导我。

我使用指令创建了两个模板(两个指令在同一页面中)。让我们说

  • 用于显示视频的directiveVideo
  • 用于展示照片的directivePhoto

然后我有一个控制器。这个控制器请求两个不同的数据,视频和照片。我的问题是,如何将视频数据传递给在directiveVideo 中显示,将照片数据传递给directivePhoto

0 投票
2 回答
5356 浏览

javascript - AngularJS 通过 $compile 获取动态内容的范围未附加到控制器范围

当我通过具有指令的字符串生成一个新元素(这就是我需要编译的原因)并且该指令通过“=”生成与控制器范围内的变量的关联时,我的控制器中的变量与指令中的一项。

我创建了一个 jsfiddle 来展示“门”ng-model 值应该与所有指令模型值相关联的示例。

看到这个小提琴:http: //jsfiddle.net/aVJqU/2/

我注意到的另一件事是,从 html 中存在的元素运行的指令通过变量(控制器和指令)显示了正确的关联。

html(有绑定的指令<door>):

这是指令:

这是控制器:

最后,这是编译具有未绑定指令的字符串的指令:

我该怎么做才能将所有“门” ng-model 值绑定在一起?编译后的指令绑定到哪里?

0 投票
1 回答
2631 浏览

angularjs - Angular:多个控制器一次调用服务

这应该是一个相当直接的问题,但我很难过。

我有一项服务可以进行 http 调用,然后对结果进行广泛的后处理。我希望将处理后的结果分配给 $scope.variable 并在几个不同的视图中使用。问题是每个视图都有单独的控制器,但我不希望每个控制器调用服务以从资源中获取相同的数据并为每个控制器进行一次后处理。

超级简化我有这个:

显然,我只想设置一次 $scope.data = Data.processData() 并让它填充到所有控制器中。就目前而言,每个控制器都独立调用服务,这会产生不必要的流量和 CPU。

我确定有一些简单的东西,但我无法弄清楚。是否有某种方法可以创建一个“超级”范围,我可以在其中定义所有控制器范围共有的变量?

谢谢,