como un nuevo angularjs usuario con un cshtml página, durante la carga de la página de una ventana modal, estoy tratando de comprobar la repetición de una casilla de verificación si existe en otra lista. el código siguiente es conceptual:

<li data-ng-repeat="analysisType in analysisTypes|limitTo:12 | limitTo: -6">
    <input type="checkbox" ng-class="{'checked' : project.analysisTypes.indexOf(analysisType) != -1}" />
    {{analysisType.name}}
</li>

específicamente, si analysisType se encuentra en proyecto.analysisTypes matriz, me gustaría comprobar la casilla de verificación. Estoy casi seguro de que es posible, pero no puede averiguar cómo.

analysisTypes y proyecto, tanto existen en el $scope, de modo que se dispone de datos.

o tal vez la solución es obligar a las casillas de verificación situadas directamente al proyecto.analysisTypes, pero aún me falta para poder dinámicamente representar el dominio de las casillas de verificación

InformationsquelleAutor user3681971 | 2014-08-14

2 Comentarios

  1. 3

    ‘indexOf’ no puede ser utilizado para encontrar la primera igualada objeto de una matriz de esta forma(simple demo). Usted debe encontrar mediante la búsqueda de forma específica y exclusiva atributo del objeto, por ejemplo, id.

    Aquí está mi ejemplo:

    HTML

    <div ng-controller="myCtrl">
        <ul>
            <li ng-repeat="analysisType in analysisTypes">
                <input type="checkbox" ng-class="{'checked':isExist(analysisType.id)!=-1}" ng-checked="isExist(analysisType.id)!=-1"/>
                {{analysisType.name}}
            </li>
        </ul>
    </div>

    JS

    angular.module("myApp",[])
    .controller("myCtrl",function($scope){
        $scope.analysisTypes = [{id:1,name:"typeA"},{id:2,name:"typeB"},{id:3,name:"typeC"}];
    
        $scope.project = {analysisTypes:[{id:2,name:"typeB"}]};
    
        $scope.isExist = function(id){
            return $scope.project.analysisTypes.map(function(type){return type.id;}).indexOf(id);
        }
    });

    Aquí es el jsFiddle DEMO.

    Por favor nota: Matriz.el prototipo.mapa y Matriz.el prototipo.indexOf sólo puede ser utilizado en IE9+. Necesitamos añadir algo de relleno si tiene navegador de apoyo preocupación.

    • gracias por lo mucho que hizo.
  2. 4

    podría utilizar el ng-revisado de la directiva para comprobar su entrada cuando la condición de devolver true o simplemente enlazar tu entrada con un ng-model.

    intente algo como que

    <input type="checkbox" ng-checked="project.analysisTypes.indexOf(analysisType) != -1" />

Dejar respuesta

Please enter your comment!
Please enter your name here