问题标签 [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:CSS 类、ng-repeat、搜索框
在 AngularJS 中,我有一个 ng-repeat 元素和一个搜索框。
我可以在 ng-repeat 上使用过滤器来根据搜索条件显示/隐藏元素。
如何根据搜索条件将 CSS 类应用于元素?- 即使所有符合搜索条件的元素变为蓝色。
angularjs - AngularJS 性能与许多指令
我正在使用 AngularJS 1.0.8。
问题:我有一个动态网站,它可以由各种组件或小部件构建:段落、文本块、图像、超链接和表格,就此而言。段落是更多组件的容器。表也是一种容器——它可以容纳其他组件,并将它们排列为数据网格。
该网站不是静态的,即我没有这些组件的预定义布局。相反,我在启动时得到了一个 JSON,它指定了组件的布局。
最初,我对每个此类组件都有一个指令,使用该指令的模板,偶尔使用 $compile 为更复杂的组件更改 DOM。对于“容器”组件——段落和表格——我使用 ngRepeat 来呈现包含在该容器组件中的所有组件。
这在性能方面是有问题的。在 Chrome/Firefox 上加载网站需要几秒钟,时间主要花在 AngularJS 渲染机制上(不是在 IO 中,我想)。
所以我决定改变这些组件的指令。而不是使用 ngRepeat,因为我不需要双向绑定(网站中的内容不是交互式的,无法更改,所以实际上我只需要渲染一次,非常像 servlet ) - 我自己在指令中构建了 HTML 字符串,使用纯 JS,迭代模型中存在的所有包含的组件,最后我编译并链接它。
结果又不够好。对于一个包含数百个单元格的表格,在现代 Chrome/Firefox 中链接需要大约 500 英里,在 IE9 中需要大约 4000 英里,在 IE8 中需要大约 15000 英里,而且 IE7 仍在渲染,所以我不能给你时间:)
我认为问题可能与指令的广泛使用有关。
一个简单的:
在链接之后,元素会产生一个<table>
带有 30-40 个标签的<tr>
标签,每个标签有 10 个<td>
标签,并且每个标签中都会有一个额外的<div my-text-component>
或<div my-image-component>
必须自行编译和链接的标签(因为它有一个指令)。
我虽然因为我的网站一开始就不是交互式的,所以我真的不需要这个。也许我可以避免为每个组件使用指令,而只为容器组件留下一个指令。在这些指令中,我将创建每个可能的其他组件的实际 HTML 模板,而不是使用会执行此操作的指令。
这让我从 AngularJS 的想法向 servlet 的想法又迈进了一步。这有点糟糕。所以也许你们中的一个人可以为我提供更好的方法......也许性能问题甚至不存在?即使有这么多的项目,也许使用指令(希望是 ngRepeat)在性能方面也可以很好?除了使用 Chrome 的开发者工具、Firebug 和 Chrome 的 Batarang AngularJS 扩展(它们都没有真正以有效的方式指导我)之外,也许还有更好的方法来进行有洞察力的性能基准测试。
angularjs - 从 ng-include 模板调用作用域函数,将模板值作为参数传递
所以我的问题是不言自明的,我想传递一个从角度模板引擎获得的参数作为参数。
就像是:
问题是作为参数传递的任何其他数值都可以正常工作,正如以下 plunkr 所强调的: http ://plnkr.co/edit/GqTDpc?p=preview
但是,一旦我尝试使用模板引擎中的值,它就会中断。
强调我的确切问题的 plunker:http: //plnkr.co/edit/FdlBQ1
jquery - Execute jquery function after ng-repeat has finished
I have a table where the rows are repeated with ng-repeat
. The height of each row is dynamically set based on the content. I need to get this specific height for each row, but when i try to get with a directive the height attribute has always the same value. It seems to me, that the jquery height()
function inside my directive is fired, before the specific content is inserted in each row. Is there a way to execute the height()
function in my directive after ng-repeat
has finished?
angularjs - 如何使用 AngularJS ng-repeat标签而不重复?
使用此代码:
我最终得到了三个 <ul>
,每个里面都有一个 <li>
。
我怎样才能得到一个 <ul>
与三个 <li>
里面?
angularjs - 从 JSON 中过滤唯一值
我正在为我的页面使用 angularjs。我想从 JSON 对象中过滤值,因此不存在冗余。但我没有找到任何方法从 angular ng-repeat 中获取唯一值。有没有办法做到这一点?
好的,这里是关于这个问题的一些描述。我有一个这种格式的 JSON。我从服务中获得的这个 JSON。所以我们不能期望重复数据是如何发生的。
我希望输出 JSON 没有重复的元素,所以我的输出将是这样的
asp.net-mvc - AngularJS + ASP .Net MVC ng-repeat 更改路由时的内存问题
我使用 Angular (1.1.5) 作为 ASP.Net MVC3 项目的前端,并且在使用 ng-repeat 时在浏览器中遇到内存消耗问题。
看起来好像当路由发生变化并且 ng-view 标签被更新时,旧的 dom 元素在使用 ng-repeat 时不会被垃圾收集。
设置如下:
- _layout.cshtml 页面,包含
<html ng-app="MyApp">
、脚本、css 和带有 Angular 应用程序链接的标题 - index.cshtml 部分使用布局页面并包含单个
<ng-view></ng-view>
标签 index.html 包含我的内容与 ng-repeat
索引.html:
/li>app.js 包含主应用模块,带有路由配置和控制器
应用程序.js
因此,重复单击标题中的链接(由于没有定义特定的路由,总是会产生路由更改),然后调用垃圾收集器会在 chrome 时间轴中产生以下内容:
如您所见,内存基线不会恢复到初始值,并且随着路由更改的增加,这会继续增加。dom 元素的数量也在不断增加。查看堆快照,这些是分离的,但仍然存在。
删除 ng-repeat 会导致 dom 计数重置每个路由更改。
有谁知道为什么?如何防止这些元素徘徊?
更新:我在 VS2010 中创建了一个新的 MVC3 项目并且没有问题。在 VS2012 中创建了一个新的 MVC3 项目并做到了。:/
angularjs - 使用 ng-repeat 以不同的 id 和 ng-init 重复相同的 div
我将如何使用 ng-repeat 重复具有这种结构的多个 div(每个 div 的邻域不同,但其余部分相同)?
angularjs - 如何将 ng-repeat 用于动态变量?
在我的控制器中,我的范围变量为 、$scope.result1
等。如何为结果实现一些常见的 ng-repeat。所以,我想在我的 html 脚本中有这样的东西。 $scope.result2
$scope.result3
但我无法实现这一点。我可以以任何方式做这样的事情吗?
angularjs - 在 Angularjs 中嵌套 ng-repeat
角代码:
HTML(玉)代码
在第一个 ng-repeat 中,我想从 qA 中选择“问题”。在第二个 ng-repeat 中,我想为所选的“问题”选择每个答案。
上面的代码不起作用。怎么做到呢?