2014-10-09 1 views
0

Прошу прощения за то, что, вероятно, невероятно простая ошибка, но мой позвоночник не загружается. Код отлично работает в этой скрипте: http://jsfiddle.net/v9suvj3m/1/ однако в моем коде это не работает. Я предполагаю, что ошибаюсь, когда включаю скрипты в нефритовый файл или не жду, чтобы что-то загрузилось в js? Если я вставляю предупреждения, предупреждения перед определением триггеров myview, но ничего после этого.Backbone View не загружается

Отредактировано с учетом комментариев. Основная проблема все еще не исправлена.

index.jade

doctype html 
html(lang='en') 
    head 
    link(rel="stylesheet" type="text/css" href="styles/main.css") 
    title Homepage 

    body 
    #body-js 
    script(src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js") 
    script(src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.6/underscore-min.js") 
    script(src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js") 
    script(type='text/javascript' src='scripts/main.js') 

scrips/main.js

var myview, view; 

myview = Backbone.View.extend({ 
    initialize: function() { 
    return $("#body-js").html("hello"); 
    } 
}); 

view = new myview({ 
    el: '#body-js' 
}); 

редактировать: Использование нон Минимизированных версий позвоночника я вижу, что ошибка в if (protoProps && _.has(protoProps, 'constructor')) { - линия 1538. Я полагаю, означает, что _ недофинансирован. Это правильное предположение и как я могу это исправить?

+0

Я не знаю, является ли это опечаткой или нет, но в вашем коде есть 'return $ (" body-js "). Html (" hello ");' it должно быть '# body-js'. Чтобы быть уверенным, вы также можете заменить его на 'this. $ El.html ('hello');'. И, наконец, ваши стили должны быть в 'head' вашей странице. – YoannM

+0

Типичный фиксированный, спасибо! Также спасибо за стили реплики. – user2410742

+0

Помогло ли это решить вашу проблему? – YoannM

ответ

1

Поместите свои сценарии после #body-js.

Магистраль не находит элемент dom, чтобы сделать свой вид.

Поскольку ваш код выполнен до того, как dom готов.

Это не так на jsFiddle. Выполняется onDomready.

Вам также необходимо добавить в таблицу еще один уровень сразу после строки html(lang='en').

Я, наконец, нашел вашу проблему ... Ваше подчеркивание слишком устарело (1.1.6).

Используйте последнюю версию (1.7.0).

+0

Я пробовал это, но все равно не кубик. Вероятно, это правильное место, чтобы их поблагодарить за советы. – user2410742

+0

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

+0

В вашем нефритовом файле вам не нужно вставлять все после строки 'html (lang = 'en')'? Потому что с этой таблицей он делает что-то вроде « [...] [...]' – YoannM