A coleção de backbone.js é apenas um modelo simples de conjunto ordenado. Ao se adaptar aos modelos e coleções, podemos evitar a lógica de processamento de dados sendo colocada em nossa camada de visualização. Além disso, modelos e coleções fornecem maneiras convenientes de trabalhar com o back -end e quando as mudanças de dados, as visualizações do backbone.js podem ser marcadas automaticamente. Dessa forma, pode ser usado nos seguintes casos:
A cópia do código é a seguinte:
Modelo: Animal, Coleção: Zoológico
Normalmente, seu conjunto é adequado apenas para um modelo, mas o modelo em si não se limita ao tipo de conjunto.
A cópia do código é a seguinte:
Modelo: Pessoa, Coleção: Escritório
Modelo: Pessoa, Coleção: Home
Aqui estão exemplos de modelos/conjuntos comuns:
A cópia do código é a seguinte:
var music = backbone.model.extend ({
inicializar: function () {
console.log ("Bem -vindo ao mundo da música");
}
});
Var álbum = backbone.collection.extend ({
Modelo: música
});
O código acima nos diz como criar uma coleção. Mas isso não nos diz o processo de manipular o conjunto com dados. Então, vamos explorar este processo:
A cópia do código é a seguinte:
var music = backbone.model.extend ({
Padrões: {
Nome: "Não especificado",
Artista: "Não especificado"
},
inicializar: function () {
console.log ("Bem -vindo ao mundo da música"); }
});
Var álbum = backbone.collection.extend ({
Modelo: música
});
var music1 = nova música ({id: 1, nome: "Como bizarro", artista: "OMC"});
var música 2 = nova música ({id: 2, nome: "o que dói mais", artista: "rascal flatts"});
var myalbum = novo álbum ([Music 1, Music 2]);
console.log (Myalbum.models);
Vamos dar uma olhada no relacionamento entre a coleção backbone.js e outros componentes:
1. Adicione um modelo à coleção
Como sabemos, um conjunto é uma coleção de modelos. Portanto, podemos adicionar modelos na coleção. Para adicionar um modelo a uma coleção, podemos usar o método ADD. Também podemos adicionar o modelo ao início da coleção - usando o método não apagado.
A cópia do código é a seguinte:
var music3 = nova música ({id: 3, nome: "sim eu faço", artista: "rascal flatts"});
Music.add (Music3);
console.log ('nova música adicionada');
console.log (json.stringify (música));
2. Remova o modelo do conjunto
Muitas vezes, temos a necessidade de remover alguns dados especificados da coleção. Para remover o modelo da coleção, precisamos fornecer o ID do modelo. Se quisermos substituir a coleção original por um novo conjunto de dados completo, podemos usar o método de redefinição.
A cópia do código é a seguinte:
Music.remove (1);
console.log ('How Bizarre Remoted ...');
console.log (json.stringify (música));
3. Obtenha e defina
Se precisarmos obter um valor de uma coleção em outras partes do código, podemos usar o método GET diretamente. Neste ponto, passamos o valor de identificação para o modelo com a pesquisa.
A cópia do código é a seguinte:
console.log (json.stringify (music.get (2)));
Há uma implementação interessante do método de conjunto do conjunto. O método set executa atualizações "inteligentes" da coleção, passando a lista de modelos. Se o modelo da lista não estiver na coleção, ele será adicionado à coleção. Se o modelo já estiver na coleção, suas propriedades serão mescladas. Se a coleção contiver algum modelo que não pertence à lista, o modelo será removido.
A cópia do código é a seguinte:
var music = backbone.model.extend ({
// Este atributo deve ser definido como padrão
Padrões: {
Nome: ''
},
// defina o atributo de identificação para que a coleção
idattribute: 'id'
});
var música = backbone.collection.extend ({
Modelo: música
});
VAR Models = [{
Nome: 'OMC',
ID: 1
}, {
Nome: 'flatts',
ID: 2
}];
var coleção = nova música (modelos);
Coleção.bind ('add', function (modelo) {
alerta ('addb')
});
Coleção.Bind ('Remover', function () {
alerta ('add')
});
modelos = [{
Nome: 'OMC',
ID: 1
}, {
Nome: 'flatts',
ID: 2
}, {
Nome: 'Jackson',
ID: 3
}];
coleção.add (modelos);
});
Como vimos acima, já tínhamos dois modelos com antecedência e, quando adicionamos o terceiro modelo, o modelo anterior permaneceu o mesmo.
4. Construtor e inicialização
Quando criamos uma coleção, podemos passar a matriz inicializada do modelo. O comparador do conjunto pode ser adicionado como uma opção. Se a opção de comparador aprovada for falsa, a classificação será evitada. Se definirmos uma função de inicialização, essa função será chamada quando a coleção for criada. A seguir, são apresentadas várias opções, se fornecidas, serão adicionadas diretamente ao conjunto: modelo e comparador.
A cópia do código é a seguinte:
var tabs = new TabSet ([TAB1, TAB2, TAB3]);
var espaços = novo backbone.collection ([], {
Modelo: Espaço
});
5. Tojson
O método TOJSO retorna uma matriz na coleção que contém cada atributo de hash do modelo. Esse método é geralmente usado para serializar e persistir o conjunto inteiro.
A cópia do código é a seguinte:
var música = new backbone.collection ([
{nome: "flatts"},
{nome: "OMC"},
{Nome: "Jackson"}
]);
alerta (json.stringify (música));
6. Comparador
Por padrão, as coleções não têm comparadores. Se definirmos um comparador, ele poderá ser usado para manter o conjunto de algum tipo. Isso significa que, ao adicionar um modelo, o modelo é inserido no local apropriado na coleção. O comparador pode ser definido no Sortby ou indica propriedades classificadas em uma string.
A função do comparador de Sortby recebe um modelo e retorna um número ou string.
A função do comparador de classificação obtém dois modelos. Se o primeiro modelo estiver à frente do segundo modelo, retornará -1; Se os dois modelos tiverem o mesmo nível, retornará 0; Se o segundo modelo estiver à frente do primeiro modelo, retornará 1.
Vamos dar uma olhada no exemplo abaixo:
A cópia do código é a seguinte:
var aluno = backbone.model;
Var Students = new Backbone.Collection;
alunos.comparator = 'nome';
estudantes.add (novo aluno ({name: "name1", roll: 9}));
estudantes.add (novo aluno ({name: "name2", roll: 5}));
estudantes.add (novo aluno ({name: "name3", roll: 1}));
alerta (estudantes.pluck ('roll'));
O conjunto a ser comparado não é reordenado automaticamente, mesmo se modificarmos as propriedades do modelo. Portanto, devemos chamar a classificação quando a estimativa afetará a classificação após modificar os atributos do modelo.
7. classificar
Ao adicionar modelos a uma coleção, a coleção deve ser forçada a ser reordenada. Para desativar a classificação ao adicionar um modelo de coleta, você pode passar no parâmetro {sort: false}. Chamar o gatilho classificado verifica este parâmetro.
A cópia do código é a seguinte:
SortbyType: function (type) {
this.sortkey = type;
this.sort ();
}
E ver funções:
A cópia do código é a seguinte:
SortThingsByColumn: function (Event) {
var tipo = event.currenttarget.classList [0]
this.collections.things.sortbytype (tipo)
this.render ()
}
8. Escolher
PLUCK: Escolha um atributo de cada modelo da coleção, que equivale a chamar o mapa do iterador e retornar um único atributo.
A cópia do código é a seguinte:
var música = new backbone.collection ([
{nome: "flatts"},
{nome: "OMC"},
{Nome: "Jackson"}
]);
var nomes = músicas.pluck ("nome");
alerta (json.stringify (nomes));
9. Onde
Onde: retorna uma variedade de modelos na coleção que corresponde às propriedades passadas, usando filtros.
A cópia do código é a seguinte:
var música = new backbone.collection ([
{nome: "sim eu faço", artista: "flatts"},
{Nome: "How Bizarre", Artista: "How Bizarre"},
{nome: "O que mais dói", artista: "flatts"},
]);
var artists = música.where ({Artist: "flatts"});
alerta (Artists.length);
10. URL
Definir as propriedades da URL na coleção se referirão à localização do servidor. Os modelos da coleção usarão este URL para construir seu próprio URL.
A cópia do código é a seguinte:
Var Songs = backbone.collection.extend ({
URL: '/Songs'
});
Var Songs = backbone.collection.extend ({
url: function () {
retornar this.document.url () + '/canções';
}
});
11. Análise
Parse: chamado por backbone ao buscar, independentemente de o servidor retornar o modelo da coleção. Esta função passa o objeto de resposta original, que deve retornar uma matriz de propriedades do modelo adicionada à coleção. A implementação padrão não é uma operação de operação. Passe simples através da resposta JSON, substitua isso por uma API pré-existente ou melhor resposta para o nome de nome.
A cópia do código é a seguinte:
Var Songs = backbone.collection.extend ({
Parse: function (resposta) {
resposta de resposta.Results;
}
});
12. Extração
Buscar: extraia o conjunto de modelos padrão da coleção do servidor e defina -os na coleção após a recuperação. Esta opção Hash aceita retornos de chamada de sucesso ou erro, que passa três parâmetros (set, resposta, opção). Em seguida, retorne os dados do modelo do servidor. É usado para configurar o modelo extraído mesclado.
A cópia do código é a seguinte:
Backbone.sync = function (método, modelo) {
alerta (método + ":" + modelo.url);
};
Var Songs = new Backbone.Collection;
Songs.url = '/Songs';
Songs.Fetch ();
Como você pode ver acima, existem muitas maneiras de dominá -las para melhorar a qualidade do seu código.