问题标签 [angularjs-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.
javascript - AngularJS:自定义迭代/数据转换和分组......当简单的 ng-repeat 不会削减它
这个问题仍然是 Angular.js 更复杂的条件循环,但我觉得问题的答案是正确的,所以我接受了它。
因此,让我比我在原始问题中所做的详细说明。
我试图得到这个
从这个数据结构
ng-repeat
基本上,我想添加的标准之外的唯一额外内容是那些标题。而且我简直不敢相信我必须通过添加它们来解决这么多问题。
这就是我最终使用我在第一个问题中得到的答案http://plnkr.co/edit/Zl5EcsiXXV92d3VH9Hqk?p=preview
请注意,实际上最多可以有 400 个条目。而且我需要能够即时添加/删除/编辑条目
plunker 上的例子是这样的:
遍历原始数据,创建一个看起来像这样的新数据结构
允许我通过这样做得到我想要的结果
伟大的。但它伴随着大量问题的代价。每次添加新项目我都必须重建itemDateMap
,每次删除项目我都必须重建itemDateMap
,每次更改日期时,我都必须重建itemDateMap
。当我想删除一个项目时,我必须首先获取其原始参考的索引。每次itemDateMap
重建时,都会重新渲染整个事物。而且它不能被排序,因为它是一个对象而不是一个数组。
当有几百个条目时,它也会变得非常非常慢。我在某处读到 ng-repeat 非常聪明,可以观察值,在 dom 中移动点头,而不是重新渲染所有内容,但是当我重建整个结构时,它肯定不会以这种方式工作。
这不可能是对的,做一件非常非常简单的事情会很麻烦..
我该怎么办?
angularjs - 在嵌套的 ng-repeat 指令中使用 ng-model
我正在尝试在 ng-repeat 指令“内”使用 ng-model,该指令本身嵌套在 ng-repeat 指令中。
以下 jsfiddle 演示了我的问题以及我解决该问题的两次尝试。
我的控制器定义如下:
1.
第一个示例/尝试更新控制器内的 machine.noteMatrix,但每次按下复选框时,angularjs 在 javascript 控制台中显示以下错误两次:
不允许在转发器中重复。中继器:步入轨道
有时它也会显示此错误:
不允许在转发器中重复。中继器:在 machine.noteMatrix[0] 中没有
2.
第二个示例/尝试从 noteMatrix 正确读取数据,并且在选中/取消选中复选框时,javascript 控制台中不会显示任何错误。但是,更改它们的状态不会更新控制器中的 machine.noteMatrix(按“显示矩阵”按钮以查看 jsfiddle 中的矩阵)。
任何人都可以对此有所了解吗?:)
javascript - 更新嵌套的 $scope 数组时,Angular.js 视图不会更新
添加评论时,我正在尝试使 angular.js 视图自行更新。我的代码如下:
范围在输入时更新:
调试 $scope.currentItem 显示注释已添加到其中,但是视图不显示新注释。我怀疑 $scope 仅在其第一级被监视,这就是视图不更新的原因。是这样吗?如果是这样,我该如何解决?
解决方案:正如 Ajay 在下面的回答中建议的那样,我将数组 push 包装到 apply 函数中,如下所示:
angularjs - AngularJS ng-click:在每次点击时添加相同的 Div/Widget
以下代码依次显示所有 div:
除此之外,我在右侧以下拉方式有以下可点击的列表菜单:
现在单击每个列表项,我想添加相同的<div> Widget Code.... </div>
内容,将现有的 div 附加到页面上。
我最近的观点如下现在我想在现有 div 之后单击每个列表项添加 div。
需要帮忙。谢谢你。
javascript - 在 getElementByID 中获取动态 id(来自 AngularJS)
我有一个可点击的下拉列表,如下所示:
我在同一个 html 页面中有以下 AngularJS 代码:
现在我想在每次单击列表项时将每个 div 添加到我的页面中。我这样调用 addWidget() 函数:
现在我的问题是,如果我将静态 id 分配给 div 并将其传递给 getElementByID 那么它可以正常工作,但在动态情况下我如何传递 id 以便在每种情况下都能正常工作?
angularjs - 在“ng-repeat”迭代中使用 AngularJs“ng-style”
我正在尝试使用 ng-style 根据它们的值有条件地设置表中数据元素的颜色。每行数据都是使用 ng repeat 生成的。
所以我有类似的东西:
以及我的控制器中的一个函数,它执行以下操作:
我尝试了几种不同的方法。甚至将颜色设置为支付对象中的数据属性,但似乎我无法获得 ng 样式来处理来自数据绑定的数据,有谁知道我可以做到这一点的方法吗?谢谢。
angularjs - ngRepeat 和指令执行顺序
当 Angular 指令包含 ngRepeat 元素时,ngRepeat 执行似乎发生在包含指令的链接执行之后。
是否有一种机制($watch、$observe 等)可用于在 ngRepeat 执行后连接响应?
以下是行为示例: http ://plnkr.co/edit/yBiSvveeSissU7Rik6Kp?p=preview
我想在指令中输入可用的状态下运行。
我的主要目标是从包含指令中更改 ngRepeat 的元素。
angularjs - 中继器中的角开关
给定一个列表,例如
在角度,我想遍历列表只呈现某些项目。就像是:
并让输出看起来像这样:
相反,我得到:
我尝试过 ng-hide,但效率非常低,因为我有大量项目并且只想显示一两个,而 ng-hide 会渲染所有项目,然后用 css 隐藏不活动的项目。这是一个问题,因为我在一个 JQuery Mobile 应用程序中执行此操作,该应用程序试图装饰所有列表项,包括隐藏项,从而降低性能。
JSFiddle 在http://jsfiddle.net/ghendricks/MXu3a/
angularjs - 如何在包含 ng-repeat 的选择上触发 ng-change
我有两个选择框,当第一个选择框更改时,第二个选择框会自行更新。
我的位置是一个 json 对象,如下所示:
这一切都以这种方式正常工作。
当我想将第一个选择框的值设置为欧洲时,它开始变得复杂,我想在第二个选择框上触发 ng-change 事件。
关于如何做到这一点的任何想法?
javascript - AngularJS:在每个项目的点击上附加相同的结构
我的 index.html 页面如下所示:
对于这个 ng-view,我有 record-list.html 来显示所有记录,如下所示:
现在我想在单击侧面板的每个项目时添加相同的结构(就像每条记录一样)。
那是什么逻辑?
我最近的 UI 看起来像这样 & 我想在每次点击时添加相同的结构,应该附加现有的结构。
请帮助。谢谢。