2014-03-25 4 views
1

Хорошо, я очень новичок в позвоночнике, и я пытаюсь обойти его, но не могу понять, что я делаю неправильно. Я не использую магистральный маршрутизатор, мне это не нужно, я использую PHP Slim для обработки всех маршрутов, я не уверен, что это правильно или нет?Получение BackBone.JS для создания формы и заполнения данных

Но то, что я пробовал делать как-то вроде работы, вроде как нет. Это отлично работает без ошибок,

var TestForm= Backbone.View.extend({ 
render: function() { 
    var MarkupBit1 = '<form class="testClass">';  
    var MarkupBit2 = '<input value="5" name="ID">'; 
    var MarkupBit3 = '<input value="6" name="Level">'; 
    var MarkupBit4 = '<input value="titletest" name="MenuTitle">'; 
    var MarkupBit5 = '<input value="pathtest" name="MenuPath">';  
    var MarkupBit6 = '<input type="submit" value="Save">'; 
    var MarkupBit7 = '</form>'; 
    var TotalMarkup = MarkupBit1+MarkupBit2+MarkupBit3+MarkupBit4+MarkupBit5+MarkupBit6+MarkupBit7; 

    this.$el.html(TotalMarkup); 
    return this; 
} 
}); 

//Make new view 
var viewtest = new AdminEditMenu(); 


$(document).ready(function(){ 
     $('#testdump').html(viewtest.render().el); 
}); 

Это создает мою форму и отображает ее без каких-либо проблем. Но когда я пробую это, это не сработает,

var AdminEditMenu = Backbone.View.extend({ 
    render: function() { 
    var MarkupBit1 = '<form class="AdminMenuEdits">';  
    var MarkupBit2 = '<input value="'+ this.options.myformid +'" name="MenuID">'; 
    var MarkupBit3 = '<input value="'+ this.options.myformlevel +'" name="MenuLevel">'; 
    var MarkupBit4 = '<input value="'+ this.options.myformtitle +'" name="MenuTitle">'; 
    var MarkupBit5 = '<input value="'+ this.options.myformpath+'" name="MenuPath">';  
    var MarkupBit6 = '<input type="submit" value="Save">'; 
    var MarkupBit7 = '</form>'; 
    var TotalMarkup = MarkupBit1+MarkupBit2+MarkupBit3+MarkupBit4+MarkupBit5+MarkupBit6+MarkupBit7; 

    this.$el.html(TotalMarkup); 
    return this; 
} 

}); 

var viewtest = new AdminEditMenu({ 
    myformid : 33, 
    myformlevel: 5, 
    myformtitle: 'TitleTest', 
    myformpath: '/testing' 
    }); 

$(document).ready(function(){ 
    $('#testdump').html(viewtest.render().el); 
}); 

С этим я получаю myformid не неопределенным в консоли.

Я попытался добавить что-то вроде var myformid = null перед представлением позвоночника?

Мне нравится идея позвоночника, я просто скажу, что их сайт мог бы сделать еще несколько примеров, которые облегчили бы обучение.

Так что я делаю неправильно?

Моей конечной целью было бы создать новый объект вида с данными, хранящимися в моей базе данных, вывести эти данные в форму, предварительно заполненную данными моей базы данных. Затем используйте базовую форму .save, чтобы получить PHP Slim для обновления данных в db.

Большое спасибо

Glenn.

+0

Это ваш код или у вас есть метод инициализации на ваш взгляд? – Puigcerber

+0

Умм да, у меня есть больше кода, чтобы делать другие вещи, но это единственный код, который я использую для создания формы. –

+0

. Я вижу, что это уже разрешено с помощью метода 'initialize', который отсутствовал. – Puigcerber

ответ

1
var AdminEditMenu = Backbone.View.extend({ 
    initialize: function(options) { 
    this.options = options; 
    }, 
    render: function() { 
    var MarkupBit1 = '<form class="AdminMenuEdits">';  
    var MarkupBit2 = '<input value="'+ this.options.myformid +'" name="MenuID">'; 
    var MarkupBit3 = '<input value="'+ this.options.myformlevel +'" name="MenuLevel">'; 
    var MarkupBit4 = '<input value="'+ this.options.myformtitle +'" name="MenuTitle">'; 
    var MarkupBit5 = '<input value="'+ this.options.myformpath+'" name="MenuPath">';  
    var MarkupBit6 = '<input type="submit" value="Save">'; 
    var MarkupBit7 = '</form>'; 
    var TotalMarkup = MarkupBit1+MarkupBit2+MarkupBit3+MarkupBit4+MarkupBit5+MarkupBit6+MarkupBit7; 

    this.$el.html(TotalMarkup); 
    return this; 
} 

}); 

Добавить метод инициализации и присвоить параметры this.options должен выполнить задание.

fiddle. Проверь это. Я удалил другой фрагмент, так как он не работает.

+0

Многое много спасибо, отлично работает сейчас! :) - ты понятия не имеешь, как сильно это подталкивало меня к стене. - Я только что видел твои изменения, я попробую. Но, спасибо, были добавлены в учебные видеоролики, которые я наблюдал за этим, именно поэтому я тогда подумал, что это где-то основа. Гость, я был неправ. Еще раз спасибо. Гленн. –

+0

Я пробовал ваши изменения, это вроде работало, я не дал мне никаких ошибок или неопределенных проблем, но форма не отображает мои данные. Он отображается на экране, но затем печатается каждое поле ввода «undefined»? - Гленн –

Смежные вопросы