我正在尝试与ng-if进行angular.isString
比较。但是返回了数组中的所有项目。
所以我尝试输出angular.isString
结果,但它没有输出任何内容。
以下是我想做的事情:
<li ng-repeat="item in data">
<div ng-if="angular.isString(item)">
{{ item }}
</div>
</li>
function MyCtrl($scope)
{
$scope.data =
[
"Hello",
"-",
123
];
}
这是一个小提琴:http://jsfiddle.net/m6k13whh/2/
答案 0 :(得分:7)
根据范围评估角度表达式。您可以创建一个返回angular.isString
的函数:
<li ng-repeat="item in data">
<div ng-if="isString(item)">
{{ item }}
</div>
</li>
$scope.isString = function(item) {
return angular.isString(item);
}
您也可以使用该功能过滤所有项目:
<li ng-repeat="item in data | filter:isString">
<div>
{{ item }}
</div>
</li>
答案 1 :(得分:2)
最佳解决方案是将对角度方法的引用传递到范围
$scope.isString = angular.isString
然后部分地使用ng-if="isString(item)"
答案 2 :(得分:0)
Hej,
确保只导入一个库。 因为在小提琴中你有两个角度脚本。 删除外部资源中的那个!
<div ng-app="myApp" ng-controller="MyCtrl">
<!-- this if comparison is what I want to do -->
<ul>
<li data-ng-repeat="item in data">
<div data-ng-if="isString(item)">
{{ item }}
</div>
</li>
</ul>
</div>
var myApp = angular.module('myApp',[]);
myApp.controller('MyCtrl', function($scope) {
$scope.data = [
"Hello",
"-",
123
];
$scope.isString = function(value) {
return angular.isString(value);
};
});