Я хотел бы заполнить параметры поля выбора атрибутами из модели "stati c". Например, у меня есть Модель и коллекции штатов США:
State = Backbone.Model.extend({
label:'',
value:''
}) ;
STATES = Backbone.Collection.extend({
model: State
});
states = [
{label: "Select ", value: '__' },
{label: "Alabama ", value: 'AL' },
{label: "Alaska ", value: 'AK' },
{label: "Arizona ", value: 'AZ' },
....];
localstates = new app.STATES(states); // or fetch the list of states from a RESTful site.
Затем я использую обратную форму, чтобы получить любое адресное представление, и я хочу передать localstates в форму, чтобы заполнить параметры поля состояния:
UserAddress = Backform.Form.extend({
el: $("#personalInformation"),
fields: [
{name: "address1", label: "Address1", control: "input"},
{name: "address2", label: "Address2", control: "input"},
{name: "city", label: "City", control: "input"},
{name: "state", label: "State", control: "select",
options: **localstates**,
{name: "zip", label: "Zip Code", control: "input"},
{control: "button", label: "Save to server"}
],
});
Полагаю, мне нужно как-то передать коллекцию состояний в представление User Address и затем получить доступ к атрибутам. Но я не смог найти хороший пример того, как это сделать.
edit1: Хорошо, в данном случае это немного глупо, но:
newstate = new app.STATES(app.states);
var allstates =[];
app.newstate.forEach(function(state){
allstates.push({"label": state.get("label"), "value" : state.get("value")});
})
Дает мне и массив, который я могу использовать в localalstate. По сути, я просто заново создал свой оригинальный массив в этом случае. В случае, если он был получен с сервера, это было бы полезно, но есть ли лучший способ?