问题标签 [ng-repeat]

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

service - AngularJS ng-repeat 与来自服务的数据

最初在我的应用程序中,我使用非常基本的 $http 调用创建了控制器,以通过从 url ($routeParams) 获取对象的 ID 来获取资源。Ng-repeat 正确显示结果。

但是,我注意到在稍后的视图中刷新(不同的控制器)会清除数据并破坏页面。因此,我在服务上创建了一个函数,以便在多个控制器中使用,以检查数据是否可用并做出如下反应:

1)如果资源已定义,则返回(无API调用) 2)如果资源未定义,则从url获取id并从API中获取 3)如果资源未定义&您无法获取ID,只返回false。

但是,这破坏了代码:在服务返回数据之前渲染的模板,并且 ng-repeat 没有更新。代码如下所示:

这是模板。它在jade中,这意味着您只需在括号中列出带有参数的元素,而不是尖括号,然后在括号后列出内容。

当控制器自己执行 $http.get 时,ng-repeat 工作正常,因为 $scope 已在“.success”回调中更新。现在有一个服务在稍微延迟后返回数据,“$scope.data”只是未定义,ng-repeat 列表是空的。

我在返回“return myData”之前使用console.log检查了myData,并且myData正在工作,只是没有及时返回,并且无论出于何种原因,只要$scope确实获取了数据,列表就不会更新。

我查看了使用 $routeProvider 的解析...但这使得从 url 获取 ID 具有挑战性,因为解析对象似乎无法访问 $routeParams。我知道 $scope.$apply 应该在被外部函数更改时帮助更新范围......但我不知道把它放在哪里。SO上最类似的问题没有使用服务。

我试过:

两次我都只得到错误:$digest 已经在进行中。

0 投票
3 回答
41315 浏览

drop-down-menu - AngularJS + Bootstrap Dropdown:不能在 ng-repeat 中进行 ng-click

我正在尝试使用 Bootstrap Dropdown 和 AngularJS 创建一个选择器。

http://jsfiddle.net/qbjfQ/

当我在列表中静态使用 ng-click 时,它工作正常(示例 4 和 5)但是当我在 ng-repeat 中使用 ng-click 时,它不会更新值(示例 1 到 3)

我能做些什么 ?

0 投票
1 回答
1439 浏览

internet-explorer-9 - IE9 中 ng-repeat 中 AngularJS 的问题

Firefox 和 Chrome 的工作就像一个魅力,只有 IE9 又烦人了。我使用这些代码片段:

使用 {{30+($index*485)}} 我计算 div 的正确位置。他们都是并排的。问题是 IE 忽略了这一点。IE 甚至没有添加样式属性。(见屏幕)

在此处输入图像描述

这是什么问题,我该如何解决这些问题?

0 投票
3 回答
82567 浏览

angularjs - AngularJS - 如何使用 ng-repeat 构造自定义过滤器以有条件地返回项目

我有一个打印列表项的 ng-repeat。我想编写一个自定义过滤器,以便仅在条件为真时打印列表项。

我似乎结构错误,因为变量似乎没有传递到过滤器。

索引.php

应用程序.js

0 投票
1 回答
500 浏览

jquery - 包含 jQuery 时,ng-repeat 不起作用

我将 zurb-foundation 与 AngularJS 一起使用。

我有以下代码:

我已经包含了 jQuery 插件,因为它是基础所必需的。当不包含 jQuery 时,代码可以正常工作,但是当我包含 jQuery 时,dropbox 中不会显示任何内容,并且应该存在的所有文本都在页面底部。

0 投票
2 回答
4397 浏览

angularjs - 带有 ng-repeat 的 Angularjs 为相同类型的多个元素生成相同的 id

我有一个 html 页面,其中我有一个对象“消息”,该对象具有一个属性“属性”,它是一个对象数组。问题是当我使用'ng-repeat'迭代'Message.Properties'项目以呈现我用angularjs创建的某些自定义元素时,它会生成一个id,我为相同的元素得到相同的id类型。这是我的代码示例:

重新表述,当元素“sdk:selectbox”被编译时,如果我在 Message.Properties 中有 2 个具有相同类型的属性(例如:9),则生成的 id(创建的 html 输入)对于两者都是相同的(虽然我是随机生成的),但是对于不同的输入,我当然需要不同的 ID。我读到 ng-repeat 会为每个项目复制模板,是吗?!如何解决?我将不胜感激任何帮助。

0 投票
1 回答
11920 浏览

angularjs - ng-switch 和 ng-repeat 干扰同一元素

我在 Angular 中遇到了我没想到的行为,这篇文章的目的是找出这是一个错误还是有意为之,并可能解释为什么它是有意的。

首先看到这个 Plunkr:http ://plnkr.co/edit/CB7k9r?p=preview 。在示例中,我创建了一个名为 array 的数组,其中包含三个对象条目。此外,我根据输入字段的内容(称为切换)创建了一个 ng-switch。当 toggle 的值为 1 时,它应该打印数组中所有以“1”为前缀的对象名称,否则以“other”为前缀。

这不能按预期工作,并显示错误:

然而,相同的示例重写(http://plnkr.co/edit/68Mfux?p=preview)在列表周围有一个额外的 div,ng-switch 移动到这个 div 和 ng-switch-when 从 li 移动到ul(将 ng-repeat 和 ng-switch-when 分开)确实按预期工作。

有人可以解释这是为什么吗?

0 投票
1 回答
479 浏览

javascript - 分组 ng-repeat 并在指令之外修改 DOM

我不确定如何描述我遇到的问题,或者即使它是一个问题。我想我很难理解 Angular 指令是如何工作的。欢迎任何关于最佳实践的建议和/或意见。

我的控制器的 $scope 中有一个简单的对象数组:

假设我想从这个数据模型创建一个 DOM 结构:

我可以在这个 plunker中实现与此接近的东西。

然而,在那里,我最终得到了一个我想要的稍微不同的 DOM 结构。

所以,我的问题是:

  1. 我是否正确地考虑了这个问题?我是否应该修改我的数据结构以按日期对其进行分组,然后只对每个单独的日期进行 ng-repeat?
  2. 如果有办法用我现有的数据结构做到这一点,我是否需要在生日男孩/ng-repeat 指令之外修改 DOM?
  3. 有没有办法将 ng-repeat 指令包装成自定义的东西 - 我已经开始研究 compile 函数但是,只是不确定......

谢谢!

0 投票
1 回答
358 浏览

angularjs - 布局问题中的 ng-switch 元素

我正在使用 ng-switch 在布局中创建过滤输入字段。我正在打开路由名称,并使用此字段过滤每页上 ng-repeat 中的数据。

这种方法的问题在于,我在一个页面上输入的值在导航到另一条路线并过滤另一页上的数据时会保持保存。我正在使用内置的角度搜索过滤器,因此使用了模型名称。

我可以在路由更改时以某种方式重置过滤器的值吗?

另一个问题是我发现这个 $parent.$parent 范围访问不切实际,但我找不到更优雅的方式。

非常感谢任何提示!

0 投票
1 回答
1574 浏览

javascript - angularjs、ng-repeat 和 DOM 元素大小

我有一部分代码,如下所示:

如何从“wrapperDirective”中获取重复“列”元素的宽度?据我了解,我需要类似 onDomRepeatComplete 事件,但此时我仍然找不到正确的解决方案和语法,只使用 setTimeout pause ...