arrays - example - AngularJs Inline comprueba si un array comprueba
ng-options angularjs (3)
Puede crear filtros globales para usar en su JS o HTML para verificar los tipos de objetos. De esta manera no contamina su $ rootScope o $ scopes para usarlo en todas partes, a diferencia de la respuesta aceptada ... Angular también tiene algunas funciones de utilidad integradas que pueden verificar los tipos de objetos:
angular
.module("yourModule")
.filter("isArray", function() {
return function(input) {
return angular.isArray(input);
};
});
En HTML:
<div ng-show="{{ textStuff[0][1]) | isArray }}">Hi</div>
También puede inyectar el servicio $ filter en su Controlador para acceder al filtro personalizado por nombre y calcular los resultados filtrados cuando se crea una instancia de la instancia de su controlador (y también cuando sus datos cambian). Esto evita problemas de rendimiento debido a que la expresión de la vista se calcula rápidamente.
angular
.module("yourModule")
.controller("MyController", MyController);
MyController.$inject = ["$filter", "$scope"];
function MyController($filter, $scope) {
this.testStuff = []; // your data
this.filteredResult = $filter("isArray")(this.testStuff[0][1]);
// or if you need to watch for data changes
var vm = this;
$scope.$watchCollection(
function() { return vm.testStuff },
function(newTestStuff) {
vm.filteredResult = $filter("isArray")(newTestStuff[0][1]);
}
);
}
<div ng-controller="MyController as my">
<div ng-show="my.filterResult">Hi</div>
</div>
Inline en AngularJs ¿hay una manera de comprobar si algo es una matriz?
Habría pensado que esto funcionaría:
<div ng-show="Array.isArray(textStuff[0][1])">Hi</div>
He comprobado que es, de hecho, una matriz. ¿Hay algo que me falta o de otra manera?
Puedes poner angular.isArray
en el alcance ...
$scope.isArray = angular.isArray;
<div ng-show="isArray(textStuff[0][1])">Hi</div>
Yo separaría la lógica de la vista. Agregar estado en el alcance y luego verificarlo
$scope.showHi = angular.isArray(textStuff[0][1]);
En vista
<div ng-show="showHi">Hi</div>