GVKun编程网logo

如何在AngularJs中将Regex与ng-repeat结合使用?(angularjs ng-change)

14

在本文中,您将会了解到关于如何在AngularJs中将Regex与ng-repeat结合使用?的新资讯,同时我们还将为您解释angularjsng-change的相关在本文中,我们将带你探索如何在An

在本文中,您将会了解到关于如何在AngularJs中将Regex与ng-repeat结合使用?的新资讯,同时我们还将为您解释angularjs ng-change的相关在本文中,我们将带你探索如何在AngularJs中将Regex与ng-repeat结合使用?的奥秘,分析angularjs ng-change的特点,并给出一些关于angularjs – 如何在Angular JS中的指令的模板中使用“ng-repeat”?、angularjs – 如何在angular.js中重复解析ng-repeat中的HTML、angularjs – 如何在包含ng-repeat的选择上触发ng-change、angularjs – 如何在嵌套的ng-repeats中获取索引的实用技巧。

本文目录一览:

如何在AngularJs中将Regex与ng-repeat结合使用?(angularjs ng-change)

如何在AngularJs中将Regex与ng-repeat结合使用?(angularjs ng-change)

我想在ng-repeat中使用正则表达式。我尝试了以下代码,但无法正常工作。

<div ng-repeat="user in users | filter:{''type'':/^c5$/}"></div>

我有用户数组,我只想显示类型为c5的用户。

如果我用

filter:{''type'':''c5''}

然后它也以“ ac5x”类型显示用户,因为它包含c5。

我怎么解决这个问题?也许还有另一种解决方案。

谢谢!

答案1

小编典典

Tosh提到的内容应该对您有用!

如果您发现自己想更频繁地使用正则表达式进行过滤,则可以创建一个自定义过滤器。像这样的小提琴使您可以指定一个字段来检查正则表达式:

var myApp = angular.module(''myApp'', []);myApp.filter(''regex'', function() {  return function(input, field, regex) {      var patt = new RegExp(regex);            var out = [];      for (var i = 0; i < input.length; i++){          if(patt.test(input[i][field]))              out.push(input[i]);      }          return out;  };});

像这样使用where ''type''表示要检查的字段(在这种情况下为type字段):

<div ng-repeat="user in users | regex:''type'':''^c5$''"></div>

angularjs – 如何在Angular JS中的指令的模板中使用“ng-repeat”?

angularjs – 如何在Angular JS中的指令的模板中使用“ng-repeat”?

我是新的Angular JS和我试图创建一个自定义指令,将使用如下:

< div linkedlist listcolumns =“{{cashAccountsColumns}}”>< / div>

Corrps。控制器将:

$scope.cashAccountsColumns = [
  {"field": "description","title": "Description"},{"field": "owner","title":"Owner"},{"field": "currentBalance","title":"Current Balance" }
];

指令代码是:

return {
      restrict : 'EA',transclude : false,templateUrl : 'html/linkedlist.html',scope: {
         listcolumns: "@"
      },link : function(scope,element,attrs) {
      }
}

模板是:

<tablehttps://www.jb51.cc/tag/Box/" target="_blank">Box-table" width="100%">
  <thead>
    <tr>
      <th scope="col" ng-repeat="column in listcolumns">
        {{column.title}}
      </th>
    </tr>
  </thead>
</table>

但这不工作。我没有得到column.title的值在屏幕上,太多的行如下被添加到DOM:

<th ng-repeat="column in listcolumns" scope="col"https://www.jb51.cc/tag/cop/" target="_blank">cope ng-binding"></th>
传递具有属性的整个对象将不起作用,您必须使用双向绑定。只需将绑定从@更改为=,并修改下面的HTML使其工作:

更改指令代码:

// ...
scope: {
    listcolumns: "="
},// ...

对模板的更改:

<div linkedlist listcolumns="cashAccountsColumns"></div>

angularjs – 如何在angular.js中重复解析ng-repeat中的HTML

angularjs – 如何在angular.js中重复解析ng-repeat中的HTML

参见英文答案 > With ng-bind-html-unsafe removed,how do I inject HTML?                                    10个
我需要在ng-repeat中解析我的模型中的可选HTML.

我在.jade模板中有一个转发器,如下所示:

tr(ng-repeat='car in cars')
  td() {{car.number}}
  td() {{car.location}}

我的car.location可以是纯文本,如:

城市名称

或者它可以有一些HTML,如下所示:

In transit,<a href="http://example.com/"/>view</a>

现在,当我得到HTML时,这不会被解析.不幸的是,这些数据来自第三方网站,所以我不能影响到这一点.是否有指令或过滤器可以将其转换为有效链接?

如果没有,我还能尝试用它做什么?

解决方法

你需要的是ng-bind-html-unsafe.
它正确解析HTML;)

示例:http://jsbin.com/ubujem/1/

< p ng-bind-html-unsafe =“car.location”>< / p>

此问题似乎与此类似:parse html inside ng-bind using angularJS

angularjs – 如何在包含ng-repeat的选择上触发ng-change

angularjs – 如何在包含ng-repeat的选择上触发ng-change

我有两个选择框,第二个选择框在第一个选择框更改时自动更新.

<label>Region</label>
<select ng-model="region" 
        ng-change="clear(1)" 
        ng-options="l.region for l in locations"
></select>
<br />
<label>Country</label>
<select ng-model='country'
        ng-change="clear(2)" 
        ng-options="c.country for c in region.countries"
></select>

我的位置是一个json对象,如下所示:

[
  {region: "Europe",countries: [{country: "France"},{country: "UK"}/*,...*/]},{region: "Africa",countries: [{country: "Cameroon"},{country: "Algeria"}]}
  /*,...*/
]

这一切都很好用.

当我想将第一个选择框的值设置为Europe时,它开始变得复杂,我想在第二个选择框上触发ng-change事件.

有关如何做到这一点的任何想法?

解决方法

您希望在第二个选择框上触发ng-change事件,这相当于模型区域更改时的方案.所以你可以使用观察者来实现它.

$scope.$watch('region',function (newValue,oldValue) {
    console.log(newValue,oldValue);
})

angularjs – 如何在嵌套的ng-repeats中获取索引

angularjs – 如何在嵌套的ng-repeats中获取索引

我在ng-repeat中有一个ng-repeat.我想在两个级别获得索引,但我无法:
<tbody>
    <tr ng-repeat="element in body">
      <td ng-repeat="h in header">
        <div col="{{$parent.$parent.$index}}" row="{{$parent.$index}}">{{element[h.column]}}</div>
      <td>
    </tr>
  </tbody>

这里也是一个plnkr.
http://plnkr.co/edit/dGoN43HzQefVpCsp2R3j

问题是“col”的值永远不会被填充.它不捕获索引.
谁能帮助

你不必使用$parent,只需使用$index来获取内部循环的索引并使用数组的 indexOf()函数来获得外部循环的索引…

HTML

<tr ng-repeat="element in body">
  <td ng-repeat="h in header">
    <div col="{{body.indexOf(element)}}" row="{{$index}}">{{element[h.column]}}</div>
  <td>
</tr>

UPDATE

实际上使用ng-init会更好地得到外循环的索引…在这里你可以轻松地将rowIndex设置为每一回合的当前索引并在内循环中使用它…

<tbody>
    <tr ng-repeat="element in body" ng-init="rowIndex = $index">
      <td ng-repeat="h in header">
        <div col="{{$index}}" row="{{rowIndex}}">{{element[h.column]}}</div>
      <td>
    </tr>
  </tbody>

这里更新PLUNKER

我们今天的关于如何在AngularJs中将Regex与ng-repeat结合使用?angularjs ng-change的分享就到这里,谢谢您的阅读,如果想了解更多关于angularjs – 如何在Angular JS中的指令的模板中使用“ng-repeat”?、angularjs – 如何在angular.js中重复解析ng-repeat中的HTML、angularjs – 如何在包含ng-repeat的选择上触发ng-change、angularjs – 如何在嵌套的ng-repeats中获取索引的相关信息,可以在本站进行搜索。

本文标签: