w3schools validar validacion una tablas tabla formularios formulario enviar ejemplos datos con antes agregar javascript backbone.js backbone-collections

javascript - validar - ¿Cómo encontrar un modelo de una colección de acuerdo con algún atributo que no sea la ID?



validar formulario javascript html5 (4)

La forma más simple es usar la opción "idAttribute" del Backbone Model para que Backbone sepa que desea usar "name" como su Id del modelo.

Friend = Backbone.Model.extend({ //Create a model to hold friend attribute name: null, idAttribute: ''name'' });

Ahora puede usar directamente el método Collection.get () para recuperar un amigo usando su nombre. De esta forma, Backbone no recorre todos sus modelos de Friend en la colección, pero puede buscar directamente un modelo en función de su "nombre".

var lee = friends.get(''Lee'');

Tengo un modelo con varios objetos:

//Model Friend = Backbone.Model.extend({ //Create a model to hold friend attribute name: null, }); //objects var f1 = new Friend({ name: "Lee" }); var f2 = new Friend({ name: "David"}); var f3 = new Friend({ name: "Lynn"});

y también, agregaré estos amigos objetan a una colección:

//Collection Friends = Backbone.Collection.extend({ model: Friend, }); Friends.add(f1); Friends.add(f2); Friends.add(f3);

y ahora quiero obtener un modelo de acuerdo con el nombre del Amigo. Sé que puedo agregar un atributo de ID para lograr esto. Pero creo que debería haber una manera más simple de hacer esto.


Las colecciones de backbone admiten el método de find subrayado, por lo que su uso debería funcionar.

things.find(function(model) { return model.get(''name'') === ''Lee''; });


Para búsquedas basadas en atributos simples, puede usar Collection#where :

donde collection.where(attributes)

Devuelve una matriz de todos los modelos en una colección que coincida con los atributos pasados. Útil para casos simples de filter .

Entonces, si friends es tu instancia de Friends , entonces:

var lees = friends.where({ name: ''Lee'' });

También hay Collection#findWhere (una adición posterior como se indica en los comentarios):

findWhere collection.findWhere(attributes)

Al igual que en donde , pero solo devuelve directamente el primer modelo de la colección que coincide con los atributos pasados.

entonces, si solo buscas uno, puedes decir cosas como:

var lee = friends.findWhere({ name: ''Lee'' });


Puede llamar a findWhere() en las colecciones de Backbone, que devolverán exactamente el modelo que está buscando.

Ejemplo:

var lee = friends.findWhere({ name: ''Lee'' });