0

我一直在尝试使用 Angular JS 和 jquery mobile 制作一个 CRUD 应用程序,但是我对可折叠组件有一些问题,信息是由 Angular js 正确获取的,但我无法扩展可折叠组件。

我提出了一个指令来进行可折叠的刷新

我得到的错误如下: https://gyazo.com/c35800051e3cdd6d9200a9955c382558

我把代码留在这里:index.html

<!DOCTYPE html>
<html >
<head>
    <title>Probando jQuery Mobile</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />

    <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.7/angular.min.js"></script>
    <script src="logica.js"></script>      

</head>
<body ng-app="miapp" ng-controller="controlador">
     <!-- Pagina Lista de Prodcuctos --> 
    <section data-role="page" id="pag_lista_productos">
        <header data-role="header" data-theme="b">
            <h1>Lista de productos</h1>
        </header>
        <article data-role="content" class="ui-content" data-theme="c">
            <div align="right" data-type="horizontal" data-role="controlgroup" data-theme="c" data-mini='true'>
                <a href="#edit_product" data-role="button" data-icon="plus" data-iconpos="right"></a>
            </div>
            <div data-role="collapsibleset" data-theme="b" data-content-theme="a" id="sitio_lista">
                <div data-role='collapsible' data-theme='e' data-content-theme='e' ng-repeat="elemento in lista_productos" actualiza-lista>
                    <h3>{{elemento.nombre}}</h3>
                    <form>
                        <label for='tipo' >Tipo:</label><input type='text' id='tipo' value='{{elemento.tipo}}' disabled>
                        <label for='categoria'>Categoria::</label><input type='text' id='categoria' value='{{elemento.categoria}}' disabled>
                        <label for='udm'>UDM:</label><input type='text' id='udm' value='elemento.udm' disabled>
                        <label for='p_compra'>Precio Venta:</label><input type='text' id='p_venta' value='{{elemento.p_venta}}' disabled>
                        <label for='p_compra'>Precio Compra:</label><input type='text' id='p_compra' value='{{elemento.p_compra}}' disabled>
                        <a href='#edit_product' data-role='button' data-theme='d' ind_mod="+index+" class='button_mod'>Modificar</a>
                        <a href='#aviso_borrar' data-role='button' data-theme='d' ind_del="+index+" class='button_del'>Eliminar</a>
                    </form>
                </div>
            </div>
        </article>
    </section>

</body>
</html>

logica.js --> 带有 Angular js 的文件

//creacion del modulo mi_app
var app = angular.module('miapp',[]);
app.controller('controlador',function($scope){
    $scope.lista_productos = [];        //Array con la lista de productos
    //Constructora del objeto producto
    $scope.Producto = function (nombre, tipo, consumible, categoria, udm, p_venta, p_compra, m_coste, pos_comp, pos_vent){
        this.nombre = nombre;
        this.tipo = tipo;
        this.consumible = consumible;
        this.categoria = categoria;
        this.udm = udm;
        this.p_venta = p_venta;
        this.p_compra = p_compra;
        this.m_coste = m_coste;
        this.pos_comp = pos_comp;
        this.pos_vent = pos_vent;
    };
    //Creación e inserción de los productos
    $scope.producto1 = new $scope.Producto("cartulina", "papel", true, "categoria1", "Unidades", 2.50, 1, "Fijo", true, false);    
    $scope.producto2 = new $scope.Producto("boligraf bic", "papel", true, "categoria1", "Unidades", 2.50, 1, "Fijo", true, false);
    $scope.producto3 = new $scope.Producto("grapadora", "papel", true, "categoria1", "Unidades", 2.50, 1, "Fijo", true, false);
    $scope.lista_productos.push($scope.producto1);  
    $scope.lista_productos.push($scope.producto2);
    $scope.lista_productos.push($scope.producto3); 

});

app.directive("actualizaLista", function() {
    return function(scope) {
        if (scope.$last){
            $('#sitio_lista').collapsibleset('refresh');
            //$('#sitio_lista').trigger('create').collapsibleset('refresh');
        }
    };
});

提前致谢

4

1 回答 1

0

尝试这个:

$('#sitio_lista').collapsible().trigger( "create" );

对于 jQuery 移动版 1.3.2

于 2015-11-10T14:15:34.230 回答