用于检查模型是数组还是对象的Angular表达式

时间:2014-03-12 15:41:48

标签: angularjs

如何检查角度模型是数组还是对象?是否内置或我必须使用Array.isArray()

编写过滤器isArray

{{[] | isArray}}无法正常工作

2 个答案:

答案 0 :(得分:11)

您可以使用angular.isArray功能。它内置于Angularjs。

如果您想在模板中使用此功能,则必须创建自定义过滤器:http://docs.angularjs.org/tutorial/step_09

您想要的示例:

angular.module('...', []).filter('isArray', function() {
  return function (input) {
    return angular.isArray(input);
  };
});

然后您可以在模板中使用过滤器:

{{ myVar | isArray }}

答案 1 :(得分:1)

我猜你也可以在rootScope中添加下划线/ lodash并使用它:

_ = require('lodash')

angular.module('app',[])
.run(function($rootScope){ 
   $rootScope._ = _
})

在模板中:

<div ng-show="$root._.isArray(foo)"> 
   <label> First element of Foo </label>
   <span> {{ $root._.first(foo) }} </span>
</div>

好处 - 你必须只在一个地方添加lodash,它将随处可用。您可以以相同的方式使用许多其他内容,例如Math函数。只是合理,不要在表达式中加入过多的javascript。