Skip to content

Commit 2ccca57

Browse files
committed
Adds summary for Anatomi of Backbone in file Resume
1 parent 8a06c46 commit 2ccca57

File tree

7 files changed

+89
-42
lines changed

7 files changed

+89
-42
lines changed

JavaScript/Anatomy_of_Backbone/1.introduction.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ var Appointment = Backbone.Model.extend({});
1313
```
1414

1515
_Пояснение._
16-
Чтобы не путаться в большом количестве данных и не терять эти данные, было принято решение разделить код. Отлично подходит для этого модель mvc (models, controllers, views). Подобная система действует в Backbone.js. Для создания модели здесь существует команда [Backbone.Model.extend({})](http://backbonejs.ru/#Model-extend).
16+
Чтобы не путаться в большом количестве данных и не терять эти данные, было принято решение разделить код. Отлично подходит для этого модель mvc (models, views, controllers). Подобная система действует в Backbone.js. Для создания модели здесь существует команда [Backbone.Model.extend({})](http://backbonejs.ru/#Model-extend).
1717

1818
## 1.3 Экземпляр модели
1919

2020
_Задание._
21-
Теперь, когда у нас есть модель класса Appointment, создадим его первый экземпляр и присвоим его переменной appointment. Передадим заголовок для appointment при его создании.
21+
Теперь, когда у нас есть модель класса Appointment, создадим его первый экземпляр, который присвоим переменной appointment. Передадим заголовок для appointment при его создании.
2222

2323
_Решение._
2424
Переменной appointment присвоим экземпляр класса Appointment, передав в него title со значением 1:
@@ -32,7 +32,7 @@ _Пояснение._
3232
## 1.4 Класс представления
3333

3434
_Задание._
35-
Ну посмотрите на это, у нас есть самый первый appointment. Но он не такой полезный, сидит там, в глубине души нашего браузера. Для его отображения, создадим сначала класс представления и назовём его AppointmentView.
35+
Ну посмотрите на это, у нас есть самый первый appointment. Но он пока бесполезный: сидит там, в глубине души нашего браузера. Для его отображения создадим сначала класс представления и назовём его AppointmentView.
3636

3737
_Решение._
3838
Создадим класс представления:
@@ -46,7 +46,7 @@ _Пояснение._
4646
## 1.5 Экземпляр представления
4747

4848
_Задание._
49-
Идеальное место, чтобы поместить код отображения теперь существует! Время создать первый экземпляр AppointmentView. При этом включим экземпляр модели appointment, который мы недавно создали. Присвоим этот экземпляр переменной.
49+
Теперь у нас есть идеальное место для кода отображения! Время создать первый экземпляр AppointmentView. При этом включим экземпляр модели appointment, который мы недавно создали. И присвоим этот экземпляр переменной.
5050

5151
_Решение._
5252
Создадим переменную appointmentView и присвоим ей новый экземпляр класса AppointmentView с экземпляром модели appointment:
@@ -60,7 +60,7 @@ _Пояснение._
6060
## 1.6 Определение визуализации
6161

6262
_Задание._
63-
Наш экземпляр класса AppointmentView почти готов, всё, что осталось сделать - определить визуализирующую функцию, чтобы мы могли на самом деле создать некоторые HTML. Получив функцию визуализации добавим тег `<li>` к элементу верхнего уровня представления. Используем this.model.get('title') как содержание `<li>`.
63+
Наш экземпляр класса AppointmentView почти готов, всё, что осталось сделать - определить визуализирующую функцию, чтобы мы могли на самом деле создать некоторые HTML. Получив функцию визуализации, добавим тег `<li>` к элементу верхнего уровня представления. Используем this.model.get('title') как содержание `<li>`.
6464

6565
_Решение._
6666

@@ -74,7 +74,7 @@ var AppointmentView = Backbone.View.extend({
7474
```
7575

7676
_Пояснение._
77-
Метод extend() может содержать объект с некоторыми свойствами. Одним из них является [render](http://backbonejs.ru/#View-render). По умолчанию он реализован как пустая функция. Но его можно переопределить кодом отрисовки шаблона с данными модели и обновления this.el новым HTML. Метод [get](http://backbonejs.ru/#Model-get) отдаёт текущее значение атрибута модели. Каждое представление имеет верхнеуровневый элемент ([el](http://backbonejs.ru/#View-el)).
77+
Метод extend() может содержать объект с некоторыми свойствами. Одним из них является [render](http://backbonejs.ru/#View-render). По умолчанию он реализован как пустая функция. Но его можно переопределить с помощью кода отрисовки шаблона с данными модели и обновления this.el новым HTML. Метод [get](http://backbonejs.ru/#Model-get) отдаёт текущее значение атрибута модели. Каждое представление имеет верхнеуровневый элемент ([el](http://backbonejs.ru/#View-el)).
7878

7979
## 1.7 Установка заголовка
8080

JavaScript/Anatomy_of_Backbone/2.models.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ _Пояснение._
2424
_Задание._
2525
В консоли обнаружен странный баг. Каждый новый Appointment имеет ту же самую дату вместо даты и времени создания экземпляра.
2626
Это потому, что new Date() определялась один раз, когда впервые была создана модель Appointment, а не переопределялась каждый раз при создании нового экземпляра.
27-
Чтобы исправить это, присвоим функцию для defaults, а не просто объект. Перенесём объект ниже, в функцию, которая будет его возвращать. Это приведёт к тому, что по умолчанию будет вычистятся время создания каждого нового экземпляра.
27+
Чтобы исправить это, присвоим defaults функцию, а не просто объект. А объект перенесём в функцию, чтобы она его возвращала. Это придаст большую гибкость и заставит дефолтное время вычисляться каждый раз при создании нового экземпляра.
2828

2929
_Решение._
3030
Сделаем так, чтобы свойство defaults имело в качестве значения не просто объект, а возвращаемый функцией объект:
@@ -45,29 +45,29 @@ _Пояснение._
4545
## 2.4 Выборка с url
4646

4747
_Задание._
48-
Dr. Goodparts заканчивал расплачиваться за сервер и заметил это с его несколькими первыми встречами. К счастью для нас, он купил пакет REST с дополнением JSON.
48+
Dr. Goodparts заканчивал рассматривать сервер и заметил неверные url. К счастью для нас, у него есть пакет REST с JSON.
4949
Направим корневой url модели Appointment в конечную точку /appointments.
50-
Затем, создадим новый Appointment с id 1 и сделаем выборку этих данных из сервера.
50+
Затем создадим новый Appointment с id 1 и сделаем выборку соответствующих данных из сервера.
5151

5252
_Решение._
53-
В объект аргумента расширения модели Backbone укажем адрес корневого url. Затем создадим новый Appointment с id 1 и сделаем выборку этих данных из сервера:
53+
В объекте аргумента расширения модели Backbone укажем адрес корневого url. Затем создадим новый Appointment с id 1 и сделаем выборку соответствующих данных из сервера:
5454
```javascript
5555
var Appointment = Backbone.Model.extend({urlRoot: '/appointments'});
5656
var appointment = new Appointment({id: 1})
5757
appointment.fetch();
5858
```
5959

6060
_Пояснение._
61-
По умолчанию, url возвращает относительный URL, по которому ресурс модели должен располагаться на сервере и обращается к Collection#url, чтобы сгенерировать его. Чтобы генерировать методы исходя из id, используется свойство [urlRoot](http://backbonejs.ru/#Model-defaults). Чтобы обновить данные с сервера, используем метод [fetch()](http://backbonejs.ru/#Model-fetch).
61+
По умолчанию, url возвращает относительный URL, по которому ресурс модели должен располагаться на сервере и обращается к Collection#url, чтобы сгенерировать его. Для генерации метода исходя из id, используется свойство [urlRoot](http://backbonejs.ru/#Model-urlRoot). Чтобы обновить данные с сервера, используем метод [fetch()](http://backbonejs.ru/#Model-fetch).
6262

6363
## 2.5 Синхронизация изменений
6464

6565
_Задание._
66-
Установка urlRoot модели Appointment позволяет нам делать болше, чем просто выборку из сервера, оно также даёт нам возможность синхронизировать изменения сделанные для экземпляров модели.
66+
Установка urlRoot модели Appointment позволяет нам делать болше, чем просто выборку из сервера, это также даёт нам возможность синхронизировать изменения, сделанные для экземпляров модели.
6767
Dr. Goodparts чувствует себя сегодня не хорошо, так что нам нужно отменить его встречи. Установим атрибут cancelled в true и сохраним appointment для сервера.
6868

6969
_Решение._
70-
С помощью метода set установим значение атрибута cancelled true, а затем сохраним это:
70+
С помощью метода set установим значение атрибута cancelled true, а затем сохраним изменения:
7171
```javascript
7272
var appointment = new Appointment({id: 1});
7373
appointment.set({cancelled: true});
@@ -81,7 +81,7 @@ _Пояснение._
8181

8282
_Задание._
8383
Dr. Goodparts растроился, что он не был уведомлён, когда мы отменили его последнюю встречу.
84-
Добавим слушателя для экземпляра модели appointment для всплывающего окна предупреждения (используя alert) всякий раз при изменении атрибутов модели.
84+
Добавим слушателя для экземпляра модели appointment, чтобы всякий раз при изменении атрибутов модели всплывало окно предупреждения (alert) .
8585

8686
_Решение._
8787
Создадим слушателя события change, в котором будет выводиться всплывающее окно при любом изменении атрибутов:
@@ -99,7 +99,7 @@ _Пояснение._
9999

100100
_Задание._
101101
Браузер Dr. Goodparts потерпел крушение из-за слишком большого количества предупреждений.
102-
Вместо прослушивания для всех изменённых атрибутов, прослушаем и предупредим только когда изменения сделаны для атрибута cancelled.
102+
Вместо прослушивания всех изменённых атрибутов, прослушаем и предупредим только когда изменения сделаны для атрибута cancelled.
103103

104104
_Решение._
105105
Укажем, что прослушиваться должно только изменение атрибута cancelled:
@@ -115,8 +115,8 @@ _Пояснение._
115115
## 2.8 Возвращая наши атрибуты
116116

117117
_Задание._
118-
Мы уже видели, как можно использовать get для доступа к атрибутам в экземпляре модели, но что если мы хотим их все сразу?
119-
Используя функцию console.log для лога JSON экземпляра appointment с помощью toJSON.
118+
Мы [уже видели](https://github.com/preigile/codeschool-hints/blob/master/JavaScript/Anatomy_of_Backbone/1.introduction.md#16-%D0%9E%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B2%D0%B8%D0%B7%D1%83%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8), как можно использовать get для доступа к атрибутам в экземпляре модели, но что если мы хотим их все сразу?
119+
Используем функцию console.log для лога JSON экземпляра appointment с помощью toJSON.
120120

121121
_Решение._
122122
Выведем в консоль JSON экземпляра appointment:

JavaScript/Anatomy_of_Backbone/4.models_and_views.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## 4.2 Отмена встречи
44

55
_Задание._
6-
Dr. Goodparts довольно чудной, он отменил немного встреч недавно. Для лёгкости он попросил сделать в приложении возможным отменять встречи по одному клику.
6+
Dr. Goodparts довольно чудной, он отменил немного встреч недавно. Для лёгкости, он попросил сделать в приложении возможным отменять встречи по одному клику.
77
Добывим ссылку к template AppointmentView, который, при клике, установит модель удалённого атрибута в true.
88
```javascript
99
var AppointmentView = Backbone.View.extend({
@@ -40,7 +40,7 @@ _Здание._
4040
Создадим функцию cancel в моделе Appointment, которой установим атрибут cancelled модели в true и вызовем эту функцию из представления. (Совет: убедиться, что код помещён в правильную закладку).
4141

4242
_Решение._
43-
Переносим функцию cancel в Models, без метода model. А во Views поместим в метод cancel вызов cancel из Models:
43+
Переносим функцию cancel в Models, без метода model. А во Views поместим в метод cancel вызов cancel из Models:
4444
Views:
4545
```javascript
4646
var AppointmentView = Backbone.View.extend({
@@ -69,7 +69,7 @@ _Пояснение._
6969
## 4.4 Синхронизация изменений
7070

7171
_Задание._
72-
Теперь мы получили замечательное место для синхронизации нашей отмены на сервер. Обновим функцию Appointment's cancel, чтобы сохранить модель после установки её атрибуту cancelled.
72+
Теперь мы получили замечательное место для отправки нашей отмены на сервер. Обновим функцию Appointment's cancel, чтобы сохранить модель после установки её атрибуту cancelled.
7373

7474
_Решение._
7575
Добавим метод save():

JavaScript/Anatomy_of_Backbone/5.collections.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## 5.2 Класс collection
44

55
_Задание._
6-
Dr. Goodparts теряет тонну бизнесса, потому что его приложение может обрабатывать только один appointment за раз! Кто думал, что это хорошая идея?
6+
Dr. Goodparts теряет тонну бизнесса, потому что его приложение может обрабатывать только один appointment за раз! Кто решил, что это хорошая идея?
77
Начнём улучшать сложившуюся ситуацию. Определим новый класс collection, названный AppointmentList и убедимся, что он обрабатывает модель Appointment.
88

99
_Решение._
@@ -119,11 +119,11 @@ _Пояснение._
119119
## 5.8 Итерация
120120

121121
_Задание._
122-
Есть много appointments в нашей коллекции и Dr. Goodparts хочет список всех их заголовков, чтобы он смог привести в порядок своё оборудование за день.
122+
В нашей коллекции есть много appointments и Dr. Goodparts хочет список всех их заголовков, чтобы он смог привести в порядок свои встречи за день.
123123
Используя итерацию функции map, вернём массив заголовков appointment и присвоим переменной titles.
124124

125125
_Решение._
126-
Переменной titles присвоим экземпляр appointment с вызовом метода map. Передадим методу коллбек с методом Appointment в качестве аргумента, а в теле вернём массив полученных заголовков:
126+
Переменной titles присвоим экземпляр appointment с вызовом метода map. Передадим методу коллбек с Appointment в качестве аргумента, а в теле вернём массив полученных заголовков:
127127
```javascript
128128
var titles = appointments.map(function (Appointment) {
129129
return Appointment.get('title');

0 commit comments

Comments
 (0)