Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Может кто объяснить почему метод validate у модели вызывается 2 раза?
http://jsfiddle.net/YJrE3/
Не в сети
Не в сети
Сделал так:
http://jsfiddle.net/YJrE3/3/
можешь в общем по коду что посоветовать?
Не в сети
напиши в примере куда debugger пихнуть
Не в сети
- можешь в общем по коду что посоветовать?
js el:'.animals', tagName: 'ul',
Нет смысла указывать оба свойства — ты либо создаёшь новый элемент для этого вида (не указывая el, но, возможно, указав className и tagName), либо привязываешь вид к существующему тегу через el — но в том случае будь осторожен и не создай этот вид дважды, иначе всё перемешается. Либо передавай ему его в options:
jsnew Views.Animals({el: '#animals'})
.
js var AnimalView = new App.Views.Animals({ collection: AnimalCollection }); AnimalView.$el.appendTo('.wrapper'); AnimalView.render();
Тем более если посмотришь на свой код инспектором DOM, то увидишь
xml<div class="animals"><li>...<li>...</div>
.
js_.each(this.collection.models,this.renderOne, this);
render() может быть вызван на уже существующем виде и твой код будет добавлять новый набор видов для каждой модели, которая у него есть. Обычно в render() очищают всё старое содержимое и полностью заменяют на новое. Именно так ты делаешь в View.Animal.render().
Когда мой вид — контейнер для коллекции, то обычно я держу в нем массив уже созданных видов (просто объект, где ключи — cid/id каждой модели, а значения — View), при добавлении/удалении модели обновляю его, а при изменении и при render() — циклом прохожу по нему и вызываю render() у каждого подвида.
jsif(attr.name == '') { return 'min length 3 and max length 20'; }
Во-первых, твоё сообщение не согласуется с условием (ты проверяешь на пустую строку, а не на 3-20 символов). Во-вторых, хотя сам метод написан верно и модель будет проверяться, но при добавлении новой модели ошибки не будет видно из-за того, что ты показываешь сообщение по событию invalid у уже существующих моделей. Это исправляется добавлением в Views.Animals.initialize() обработчика для this.collection.on('invalid').
- напиши в примере куда debugger пихнуть
Замени на
xml<script src="//backbonejs.org/backbone.js"></script>
и:
js validate: function(attr){ debugger console.log(typeof attr.name, attr);
Не в сети
Спс, большое.
А можешь подсказать как организовать работу с авторизированным юзером?
Мне видится так:
Когда летит запрос на сервер(не важно какой) то там проверяется авторизован юзер или нет, если нет то посылает ответ и юзера перекидывает на страницу авторизации, если он залогинен то возвращается нормальный ответ и продолжаем работу. Но тут вопросец, нужно будет модель User, там будут храниться данные по юзеру, получается что её надо обновлять время от времени.
Может есть ссылки на примеры?
Изменено Proger_XP (07.07.2013 12:50:13)
Не в сети
Не вижу, в чём проблема. Если у тебя one-page web app, то всё делается через AJAX. Логично, что и вход/выход/регистрация и прочее делается так же. При инициализации (первом заходе на страницу) посылаешь запрос на сервер, он читает модель (БД) и если клиент авторизован — отправляет тебе его данные, если нет — 401 Unauthorized или просто 403. А ты уже ловишь этот ответ и делаешь то, что нужно.
Не в сети
Страницы 1