Contenido

MonsterLab-MVC, framework MVC desarrollado en MooTools

27 Ago

+ 2

Seanmonstar está desarrollando un framework basado en el modelo MVC llamado MonstarLab-MVC cuyo mayor atractivo es que está desarrollado en MooTools y pensado para crear aplicaciones ricas en el navegador del usuario.

Modelo


 var Recipe = new Class({
            Extends: Model.Ajax,
            fields: {
                    id: Model.Fields.AutoField(),
                    title: Model.Fields.TextField({ length: 64, required: true}),
                    ingredients: Model.Fields.TextField()
            }
    });

Con el modelo podremos usar todos los tipos de almacenamiento disponibles (SQL, Ajax, XML, File, Storage,…)

Controlador


 var RecipesController = new Class({
            list: function(recipes) {
                    $(this).set('html', this.view({ recipes: recipes }));
            }

            events: {
                    load: function() {
                            Recipe.findAll(this.list.bind(this));
                    },
                    'click:relay(.recipe .delete)': function(e) {
                        e.preventDefault();
                        var recipeView = $(e.target).getParent('.recipe');
                        recipeView.model().destroy(function() {
                            recipeView.destroy();
                        });
                    }
            }
    });

El controlador se encargará de manejar los datos obtenidos desde el modelo.

Vista


<ul id="RecipesList">
        <% recipes.each(function(r) { %>
        <li class="recipe <%=r.identity()%>">
                <h3><%=r.get(title)%></h3>
                <%= view('recipes/ingredients', r.get('ingredients')); %>
                <a href="#" class="delete">Delete</a>
        </li>
        <% }); %>
</ul>

La vista, muy similar a la de las páginas ASP nos permite separar las plantillas de la lógica de negocio.

Interesante proyecto al que seguir detenidamente

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.