property example array arrays angularjs ng-show

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>

Fiddle


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>