Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
6 / 6 / 0
Регистрация: 01.04.2012
Сообщений: 81

TypeError Backbone.View

06.08.2012, 11:47. Показов 1145. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
Storage.prototype.setObject = function(key, value) {
    this.setItem(key, JSON.stringify(value));
}
 
Storage.prototype.getObject = function(key) {
    var value = this.getItem(key);
    return value && JSON.parse(value);
}
 
//localStorage.setObject("first", {"object":"need to do", "status":"done"});
window.album = Backbone.Model.extend(
{
  
});
 
window.Albums = Backbone.Collection.extend(
{
  model : album,
  lStor: new Store("todo")
});
 
window.Albums = new Albums();
/*albumsCollection =  Albums.extend(
{
  collection : Albums,
 
  initialize : function()
  {
    this.fetch();
  }
});*/
 
window.AlbumView = Backbone.View.extend(
{
  tagName : "li",
  className : "albums",
 
  initialize : function()
  {
    _.bindAll(this, "render");
    this.model.bind("change", this.render);
    this.template = _.template($("#album-template").html());
  },
  render : function()
  {
    var renderContent = this.template(this.model.toJSON());
    $(this.el).html(renderContent);
    return this;
  }
});
 
window.LibraryAlbumView = AlbumView.extend({});
 
window.LibraryView = Backbone.View.extend(
{
  tagName : "section",
  className : "library",
 
  initialize : function()
  {
    _.bind(this, "render");
    this.template = _.template($("#library-template").html());
    this.collection.bind("reset", this.render);
  },
 
  render : function()
  {
    var $album,
        collection = this.collection;
 
    $(this.el).html(this.template({}));
    $albums = this.$(".albums");
    collection.each(function(albums)
    {
      var view = new LibraryAlbumView(
      {
        model : album,
        collection : collection
      });
      $albums.append(view.render().el);
    });
    return this;
  }
});
 
window.main = Backbone.Router.extend(
{
  routes:
  {
    "": "main"
  },
 
  initialize : function()
  {
    this.libraryView = new LibraryView({collection : window.Albums});
  },
  main : function()
  {
    var $container = $("#divHead");
    $container.append(this.libraryView.render().el);
  }
})
 
// $("#divHead").append(libraryView.render().el);
 
$(document).ready(function()
{
  //window.app = new main();
  //Backbone.history.start();
  window.Albums.fetch();
});
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//lStor
// A simple module to replace `Backbone.sync` with *localStorage*-based
// persistence. Models are given GUIDS, and saved into a JSON object. Simple
// as that.
 
// Generate four random hex digits.
function S4() {
   return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
};
 
// Generate a pseudo-GUID by concatenating random hexadecimal.
function guid() {
   return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
};
 
// Our Store is represented by a single JS object in *localStorage*. Create it
// with a meaningful name, like the name you'd give a table.
var Store = function(name) {
  this.name = name;
  var store = localStorage.getItem(this.name);
  this.data = (store && JSON.parse(store)) || {};
};
 
_.extend(Store.prototype, {
 
  // Save the current state of the **Store** to *localStorage*.
  save: function() {
    localStorage.setItem(this.name, JSON.stringify(this.data));
  },
 
  // Add a model, giving it a (hopefully)-unique GUID, if it doesn't already
  // have an id of it's own.
  create: function(model) {
    if (!model.id) model.id = model.attributes.id = guid();
    this.data[model.id] = model;
    this.save();
   // return model;
  },
 
  // Update a model by replacing its copy in `this.data`.
  update: function(model) {
    this.data[model.id] = model;
    this.save();
    return model;
  },
 
  // Retrieve a model from `this.data` by id.
  find: function(model) {
    return this.data[model.id];
  },
 
  // Return the array of all models currently in storage.
  findAll: function() {
    return _.values(this.data);
  },
 
  // Delete a model from `this.data`, returning it.
  destroy: function(model) {
    delete this.data[model.id];
    this.save();
    return model;
  }
 
});
 
// Override `Backbone.sync` to use delegate to the model or collection's
// *localStorage* property, which should be an instance of `Store`.
Backbone.sync = function(method, model, success, error) {
 
  var resp;
  var store = model.lStor || model.collection.lStor;
 
  switch (method) {
    case "read":    resp = model.id ? store.find(model) : store.findAll(); break;
    case "create":  resp = store.create(model);                            break;
    case "update":  resp = store.update(model);                            break;
    case "delete":  resp = store.destroy(model);                           break;
  }
 
  if (resp) {
    this.models = resp;//success(resp);
  } else {
    error("Record not found");
  }
};
при попытки создать обьект LibraryView выдает ошибку TypeError
создаю обьект так
JavaScript
1
libraryView = new LibraryView({collection : Albums})
подскажите что не так
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.08.2012, 11:47
Ответы с готовыми решениями:

Библиотека backbone.js
Добрый вечер. Заранее прошу прощения, если разместила не в тот раздел, просто не нашла подходящего. Пытаюсь освоить принципы...

Validate в backbone
Имеется вот такой код, при задание отрицательного возраста должна происходить валидация, но как это обычно бывает, она не происходит))...

Books for learning BackBone
подскажите пожалуйста книги для изучения BackBone.

1
tribal dance
 Аватар для EPMAK
168 / 156 / 36
Регистрация: 03.09.2009
Сообщений: 820
Записей в блоге: 17
06.08.2012, 13:56
Так короче и правильней:
JavaScript
1
var libraryView = {collection : Albums}; // литеральная нотация объекта
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.08.2012, 13:56
Помогаю со студенческими работами здесь

BackBone. непонятки с представлением.
Доброго времени суток. Изучаю backbone и столкнулся с такой траблой: Код страницы: <div id="start"...

Backbone предзагрузка моделей в коллекцию
Доброго времени суток. Делаю страницу на backbone. Изначально уже есть коллекция которой нужно наполнить страницу. В документации...

Backbone - HTML всей страницы
Есть страничка наполненная вставками Backbone вроде таких: <script type="text/template" id="shopping-bag-item-tmpl"> ...

Пример сложного приложения на Backbone
Посоветуйте какой-нибудь ресурс или скринкаст с примером кода сложного приложения на Backbone. А то везде одни типовые менеджеры контактов...

Как быстро выучить JS (Angular, Backbone)
Добрый день. Нашел вакансию JavaScript разработчик с хорошей оплатой. Сам я не зарабатывал на написании сайтов, но для себя пишу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru