Estoy iterando sobre una matriz de objetos que representan elementos HTML. Estoy tratando de pasar una referencia de objeto (o una copia) a mi directiva personalizada dentro de este ciclo. Para cada objeto de la matriz, quiero crear una directiva personalizada y enviar el objeto utilizado en esa iteración del bucle a la directiva. Parece que no puedo hacer que esto funcione sin que la variable esté en el alcance del controlador o contamine el alcance global con un montón de variables de alias. Esta es mi función de controlador.
function decode() { var html = ''; for(var element of $scope.currentPage.elements) { html += `<pv-${element.type} id="${element.id}" element="element"></pv-${element.type}>`; } var j = $(html); // Compile will not work unless the same var is used in statements below! $('#viewer').html(j); $compile(j)($scope); }Necesito pasar cada objeto usando el atributo del elemento. Puedo hacer que esto funcione creando una referencia al objeto actual en el alcance y pasándolo, pero, por supuesto, los datos cambian en la próxima iteración del bucle. Intenté enviarlo como una cadena JSON y analizarlo dentro de la directiva, pero eso también se rompió debido a las comillas inesperadas.