我需要创建一个以逗号分隔的项目列表:
<li ng-repeat="friend in friends">
<b ng-repeat="email in friend.email">{{email}}{{$last ? '' : ', '}}</b>...
</li>
Run Code Online (Sandbox Code Playgroud)
根据AngularJS文档,表达式中不允许使用控制流语句.这就是我{{$last ? '' : ', '}}无法工作的原因.
是否有另一种创建逗号分隔列表的方法?
编辑1
有一些比以下更简单:
<span ng-show="!$last">, </span>
Run Code Online (Sandbox Code Playgroud) 我见过这个问题.
我的代码而不是ng-bind="item.desc"用途,{{item.desc}}因为我有一个ng-repeat之前.
所以我的代码:
<div ng-repeat="item in items">
{{item.description}}
</div>
Run Code Online (Sandbox Code Playgroud)
项目描述包含\n未呈现的换行符.
{{item.description}}假设我有ng-repeat上述内容,如何轻松显示换行符?
我有一个数千行的庞大数据集,每行约10个字段,大约2MB的数据.我需要在浏览器中显示它.最简单的方法(获取数据,将其放入$scope,让它ng-repeat=""完成它的工作)工作正常,但它开始将浏览器的节点插入DOM时冻结大约半分钟.我该如何处理这个问题?
一种选择是逐行追加行$scope并等待ngRepeat完成将一个块插入DOM,然后再移动到下一个.但AFAIK ngRepeat在完成"重复"时不报告,所以它会变得丑陋.
其他选择是将服务器上的数据拆分成页面并在多个请求中获取它们,但这甚至更加丑陋.
我浏览了Angular文档以寻找类似的东西ng-repeat="data in dataset" ng-repeat-steps="500",却一无所获.我对Angular方式相当新,所以我可能完全忽略了这一点.这方面的最佳做法是什么?
除了在对象中呈现属性的值之外,我还想将属性名称呈现为标签.有没有办法做到这一点ng-repeat?例如:
<ul>
<li ng-repeat="option in data">{{propertyName}}: {{option}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
哪个可能吐出这样的东西:
<ul>
<li>Name: John</li>
<li>Phone: (123) 456-7890</li>
<li>Country: England</li>
</ul>
Run Code Online (Sandbox Code Playgroud) 我想使用filterin angular并想要过滤多个值,如果它有任何一个值,那么它应该显示.
我有这样的结构:
一个movie具有属性的对象,genres我想过滤Action和Comedy.
我知道我可以做filter:({genres: 'Action'} || {genres: 'Comedy'}),但如果我想动态过滤该怎么办.例如filter: variableX
如何设置variableX的$scope,当我有我有过滤类型的数组?
我可以把它构造成一个字符串,然后做一个eval()但我不想使用eval()...
我正在运行一个简单ng-repeat的JSON文件,并希望得到类别名称.大约有100个对象,每个对象属于一个类别 - 但只有大约6个类别.
我目前的代码是这样的:
<select ng-model="orderProp" >
<option ng-repeat="place in places" value="{{place.category}}">{{place.category}}</option>
</select>
Run Code Online (Sandbox Code Playgroud)
输出是100个不同的选项,大多数是重复的.如何使用Angular检查是否{{place.category}}已存在,如果已存在则不创建选项?
编辑:在我的javascript中$scope.places = JSON data,只是为了澄清
我正在使用带有过滤器的ng-repeat指令,如下所示:
ng-repeat="item in items | orderBy:'order_prop' | filter:query | limitTo:4"
Run Code Online (Sandbox Code Playgroud)
我可以看到渲染结果很好; 现在我想在我的控制器中对该结果运行一些逻辑.问题是如何获取结果项引用?
更新:
只是为了澄清:我正在尝试创建一个自动完成,我有这个输入:
<input id="queryInput" ng-model="query" type="text" size="30" placeholder="Enter query">
Run Code Online (Sandbox Code Playgroud)
然后过滤结果:
<ul>
<li ng-repeat="item in items | orderBy:'order_prop' | filter:query | limitTo:4">{{item.name}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
现在我想导航结果并选择其中一个项目.
我正在使用ng-repeat和我的代码我有'n'个基于ng-repeat的文本框.我想将文本框与三列对齐.
这是我的代码
<div class="control-group" ng-repeat="oneExt in configAddr.ext">
{{$index+1}}.
<input type="text" name="macAdr{{$index+1}}"
id="macAddress" ng-model="oneExt.newValue" value=""/>
</div>
Run Code Online (Sandbox Code Playgroud) 我试图允许用户使用ngRepeat和编辑项目列表ngModel.(看到这个小提琴.)但是,我尝试过的两种方法都会导致奇怪的行为:一个不更新模型,另一个模糊每个keydown上的形式.
我在这里做错了吗?这不是支持的用例吗?
以下是小提琴的代码,为方便起见而复制:
<html ng-app>
<head>
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/css/bootstrap-combined.min.css" rel="stylesheet">
</head>
<body ng-init="names = ['Sam', 'Harry', 'Sally']">
<h1>Fun with Fields and ngModel</h1>
<p>names: {{names}}</p>
<h3>Binding to each element directly:</h3>
<div ng-repeat="name in names">
Value: {{name}}
<input ng-model="name">
</div>
<p class="muted">The binding does not appear to be working: the value in the model is not changed.</p>
<h3>Indexing into the array:</h3>
<div ng-repeat="name in names">
Value: {{names[$index]}}
<input ng-model="names[$index]">
</div>
<p class="muted">Type one character, and the input …Run Code Online (Sandbox Code Playgroud) 我有一个输入,可以在更改时过滤ng-repeat列表.重复包含大量数据,需要几秒钟来过滤所有内容.在开始过滤过程之前,我希望它们延迟0.5秒.角度创建此延迟的正确方法是什么?
输入
<input ng-model="xyz" ng-change="FilterByName()" />
Run Code Online (Sandbox Code Playgroud)
重复
<div ng-repeat"foo in bar">
<p>{{foo.bar}}</p>
</div>
Run Code Online (Sandbox Code Playgroud)
过滤功能
$scope.FilterByName = function () {
//Filtering Stuff Here
});
Run Code Online (Sandbox Code Playgroud)
谢谢