-
Notifications
You must be signed in to change notification settings - Fork 0
/
backbone.js.mm
388 lines (385 loc) · 49.9 KB
/
backbone.js.mm
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
<map version="freeplane 1.3.0">
<!--To view this file, download free mind mapping software Freeplane from http://freeplane.sourceforge.net -->
<node ID="ID_1723255651" CREATED="1283093380553" MODIFIED="1411539182103"><richcontent TYPE="NODE">
<html>
<head>
</head>
<body>
<p>
<b><font color="#ff0000" face="utkal">  backbone.js</font></b>
</p>
</body>
</html>
</richcontent>
<hook NAME="AutomaticEdgeColor" COUNTER="11"/>
<font NAME="Waree" SIZE="17" BOLD="false" ITALIC="false"/>
<edge COLOR="#0033ff"/>
<hook NAME="MapStyle" background="#f0f2f0" zoom="1.5">
<properties show_icon_for_attributes="true" show_note_icons="true"/>
<map_styles>
<stylenode LOCALIZED_TEXT="styles.root_node">
<stylenode LOCALIZED_TEXT="styles.predefined" POSITION="right">
<stylenode LOCALIZED_TEXT="default" MAX_WIDTH="600" COLOR="#000099" STYLE="fork">
<font NAME="Verdana" SIZE="10" BOLD="false" ITALIC="false"/>
<edge STYLE="bezier" WIDTH="2"/>
</stylenode>
<stylenode LOCALIZED_TEXT="defaultstyle.details" COLOR="#000001" BACKGROUND_COLOR="#ffeb89" STYLE="bubble" FORMAT="STANDARD_FORMAT" MIN_WIDTH="1">
<font NAME="SansSerif" SIZE="10" BOLD="false" ITALIC="false"/>
</stylenode>
<stylenode LOCALIZED_TEXT="defaultstyle.note" COLOR="#000000" BACKGROUND_COLOR="#f7f7f7" STYLE="bubble" FORMAT="NO_FORMAT" MAX_WIDTH="2000">
<font NAME="Monospaced" SIZE="10" BOLD="false"/>
</stylenode>
<stylenode LOCALIZED_TEXT="defaultstyle.floating">
<edge STYLE="hide_edge"/>
<cloud COLOR="#f0f0f0" SHAPE="ROUND_RECT"/>
<font SIZE="12"/>
</stylenode>
</stylenode>
<stylenode LOCALIZED_TEXT="styles.user-defined" POSITION="right">
<stylenode LOCALIZED_TEXT="styles.topic" COLOR="#18898b" STYLE="fork">
<font NAME="Liberation Sans" SIZE="10" BOLD="true"/>
</stylenode>
<stylenode LOCALIZED_TEXT="styles.subtopic" COLOR="#cc3300" STYLE="fork">
<font NAME="Liberation Sans" SIZE="10" BOLD="true"/>
</stylenode>
<stylenode LOCALIZED_TEXT="styles.subsubtopic" COLOR="#669900">
<font NAME="Liberation Sans" SIZE="10" BOLD="true"/>
</stylenode>
<stylenode LOCALIZED_TEXT="styles.important" COLOR="#ff0000">
<icon BUILTIN="yes"/>
<font NAME="Ubuntu" SIZE="14"/>
<cloud COLOR="#ffffff" SHAPE="ARC"/>
</stylenode>
<stylenode TEXT="Перечисление" STYLE="fork" FORMAT="STANDARD_FORMAT" MIN_WIDTH="1">
<font NAME="SansSerif" BOLD="false" ITALIC="false"/>
<edge STYLE="horizontal"/>
</stylenode>
<stylenode TEXT="списокБезРамки" COLOR="#000000" BACKGROUND_COLOR="#e8e8e8" STYLE="bubble">
<font NAME="Verdana" SIZE="10" BOLD="false"/>
<edge STYLE="horizontal"/>
</stylenode>
</stylenode>
<stylenode LOCALIZED_TEXT="styles.AutomaticLayout" POSITION="right">
<stylenode LOCALIZED_TEXT="AutomaticLayout.level.root">
<font NAME="URW Gothic L" SIZE="18" BOLD="false"/>
</stylenode>
<stylenode LOCALIZED_TEXT="AutomaticLayout.level,1">
<font SIZE="12"/>
</stylenode>
<stylenode LOCALIZED_TEXT="AutomaticLayout.level,2" COLOR="#00b439">
<font SIZE="14"/>
</stylenode>
<stylenode LOCALIZED_TEXT="AutomaticLayout.level,3" COLOR="#990000">
<font SIZE="12"/>
</stylenode>
<stylenode LOCALIZED_TEXT="AutomaticLayout.level,4" COLOR="#111111">
<font SIZE="10"/>
</stylenode>
</stylenode>
</stylenode>
</map_styles>
</hook>
<node TEXT="MV* (MVP)" POSITION="left" ID="ID_1320706989" CREATED="1411484119565" MODIFIED="1500307510693">
<edge COLOR="#0000ff"/>
<font SIZE="12"/>
<node TEXT="архитектура модель <> виджет" LOCALIZED_STYLE_REF="styles.important" ID="ID_546397139" CREATED="1411484528345" MODIFIED="1411544610662"/>
<node TEXT="модель" ID="ID_1470343165" CREATED="1411484564454" MODIFIED="1411484567353">
<node TEXT="данные" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_925213733" CREATED="1411484570838" MODIFIED="1411484824303">
<node TEXT="значения" ID="ID_970907596" CREATED="1411484836059" MODIFIED="1411484843223"/>
<node TEXT="список" ID="ID_506102687" CREATED="1411484832657" MODIFIED="1411484835545"/>
<node TEXT="фото" ID="ID_1129068669" CREATED="1411484827863" MODIFIED="1411484831269"/>
</node>
<node TEXT="логика, применяемая
 к этим данным" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1393128984" CREATED="1411544405674" MODIFIED="1411544461637">
<node TEXT="обрезать фото" ID="ID_822209520" CREATED="1411544464569" MODIFIED="1411544473997"/>
<node TEXT="проверить значение" ID="ID_945254480" CREATED="1411544475025" MODIFIED="1411544497184"/>
<node TEXT="формотирование" ID="ID_393956820" CREATED="1411544498308" MODIFIED="1411544514660"/>
</node>
</node>
</node>
<node TEXT="роутеры(Routes)" LOCALIZED_STYLE_REF="AutomaticLayout.level.root" POSITION="right" ID="ID_722230680" CREATED="1500307709621" MODIFIED="1500473298542">
<edge COLOR="#7c007c"/>
<font SIZE="14" BOLD="true"/>
<node TEXT="" ID="ID_577246618" CREATED="1500311905899" MODIFIED="1500311905899">
<node TEXT="объект, управляющий состоянием веб приложений" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_377316534" CREATED="1500311648929" MODIFIED="1500311706889"/>
<node TEXT="виртуальные страницы (можно сохранять в закладки)" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_838265270" CREATED="1500311707886" MODIFIED="1500311752499"/>
<node TEXT="реализация хеш навигации" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_621007012" CREATED="1500319060944" MODIFIED="1500319070726"/>
<node TEXT="работает с HTML5 history API" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1443996181" CREATED="1500311814110" MODIFIED="1500311837674" LINK="https://habrahabr.ru/post/123106/"/>
<node TEXT="может создавать события" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1093796758" CREATED="1500473309949" MODIFIED="1500473317988"/>
</node>
<node TEXT="methods" LOCALIZED_STYLE_REF="default" ID="ID_1773476492" CREATED="1500312074825" MODIFIED="1500312098449">
<icon BUILTIN="list"/>
<node TEXT="extend(obj)" ID="ID_1483598560" CREATED="1500312099903" MODIFIED="1500312113211">
<node TEXT="расширение Backbone.Router" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_529741419" CREATED="1500312125228" MODIFIED="1500312222238"/>
<node TEXT=" var Controller = Backbone.Router.extend(my_routes);" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_113901231" CREATED="1500312164607" MODIFIED="1500312221218"/>
</node>
<node TEXT="route(route, name, callback)" ID="ID_916403142" CREATED="1500318769260" MODIFIED="1500472629321">
<icon BUILTIN="yes"/>
<icon BUILTIN="button_cancel"/>
<node TEXT="" ID="ID_514534588" CREATED="1500471240691" MODIFIED="1500471240691">
<node TEXT="добавить новый роут к объекту после инициализации" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_99105746" CREATED="1500318791150" MODIFIED="1500319001128"/>
<node TEXT="params" ID="ID_541397761" CREATED="1500319002571" MODIFIED="1500471030958">
<node TEXT="route" STYLE_REF="списокБезРамки" ID="ID_1715984201" CREATED="1500471031854" MODIFIED="1500471235161">
<node TEXT="строка роутера" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1273731324" CREATED="1500471039721" MODIFIED="1500471126074"/>
<node TEXT="может быть регулярным варажением" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_977909863" CREATED="1500471049078" MODIFIED="1500471125601"/>
</node>
<node TEXT="name" STYLE_REF="списокБезРамки" ID="ID_421638728" CREATED="1500471127451" MODIFIED="1500471235158">
<node TEXT="название функции (наименование события)" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_680838383" CREATED="1500471151373" MODIFIED="1500471181294"/>
</node>
<node TEXT="callback" STYLE_REF="списокБезРамки" ID="ID_1728976512" CREATED="1500471183013" MODIFIED="1500471235152">
<node TEXT="функция обратного вызова" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1133553572" CREATED="1500471216688" MODIFIED="1500471230709"/>
</node>
</node>
</node>
<node TEXT="" ID="ID_1109209622" CREATED="1500471246238" MODIFIED="1500471246238"/>
</node>
<node TEXT="navigate(fragment, options)" ID="ID_872711241" CREATED="1500468065926" MODIFIED="1500476620694">
<node TEXT="" ID="ID_204455111" CREATED="1500476264355" MODIFIED="1500476264355">
<node TEXT="переключать страницы роутера" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_213415761" CREATED="1500476223661" MODIFIED="1500476257478"/>
<node TEXT="params" ID="ID_507528190" CREATED="1500476258195" MODIFIED="1500476261608">
<node TEXT="fragment" STYLE_REF="списокБезРамки" ID="ID_693623421" CREATED="1500476302592" MODIFIED="1500476492872">
<node TEXT="url хеш" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_40614904" CREATED="1500476308033" MODIFIED="1500476321578"/>
</node>
<node TEXT="options" STYLE_REF="списокБезРамки" ID="ID_1162406616" CREATED="1500476323425" MODIFIED="1500476492867">
<node TEXT="trigger" STYLE_REF="списокБезРамки" ID="ID_996778580" CREATED="1500476330026" MODIFIED="1500476489028">
<node TEXT="запускать событие" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_305755205" CREATED="1500476343210" MODIFIED="1500476384114"/>
<node TEXT="если false, то событие из router не запустится" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_450311819" CREATED="1500476353474" MODIFIED="1500476382944"/>
</node>
<node TEXT="replace" STYLE_REF="списокБезРамки" ID="ID_675427295" CREATED="1500476386613" MODIFIED="1500476598391">
<icon BUILTIN="help"/>
<icon BUILTIN="yes"/>
<node TEXT="обновить, без создания записи в истории" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_371901257" CREATED="1500476455986" MODIFIED="1500476485379"/>
</node>
</node>
</node>
</node>
<node TEXT=" controller.navigate('success', {trigger: true, replace: true});" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_1433234791" CREATED="1500476577486" MODIFIED="1500476580730"/>
</node>
</node>
<node TEXT="attributes" ID="ID_166751290" CREATED="1500312544705" MODIFIED="1500312553126">
<icon BUILTIN="list"/>
<node TEXT="routes" ID="ID_1947830978" CREATED="1500312492570" MODIFIED="1500312530615">
<node TEXT="описывает паттерны URL c функциями роутера" ID="ID_989096105" CREATED="1500312559231" MODIFIED="1500312598213"/>
<node TEXT="rules" ID="ID_686709498" CREATED="1500312742026" MODIFIED="1500312881775">
<icon BUILTIN="list"/>
<node TEXT=":optional/[:optinal2]" ID="ID_478226692" CREATED="1500312983508" MODIFIED="1500315800030">
<node TEXT="" ID="ID_325733837" CREATED="1500315806747" MODIFIED="1500315806747">
<node TEXT="#/hash/:optional" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1016865208" CREATED="1500312882893" MODIFIED="1500315227927"/>
<node TEXT="обозначение опции для параметров функций" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1520894572" CREATED="1500313005850" MODIFIED="1500315296400"/>
<node TEXT="соотвествуют только одному элементу URL" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1387080919" CREATED="1500315196744" MODIFIED="1500315753558"/>
</node>
<node TEXT=" routes: {
...
 "!/alert/:message/:name" : 'alert',
....
 },
....
 alert: function(message, name) {
 alert(message + ' ' + name);
 },
...." LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_448865513" CREATED="1500315810499" MODIFIED="1500316012202"/>
</node>
<node TEXT="*path" ID="ID_570014158" CREATED="1500316139960" MODIFIED="1500316181625">
<node TEXT="" ID="ID_286806849" CREATED="1500318044522" MODIFIED="1500318044522">
<node TEXT="все что угодно, после слеша" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1738387939" CREATED="1500317030015" MODIFIED="1500317049527"/>
<node TEXT="не учитывать слешы" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_134195864" CREATED="1500317016713" MODIFIED="1500317050610"/>
</node>
<node TEXT=""!/alert/*message" : 'alert',

//<li><ahref="#!/alert/hi_anyone/ddadfasd/adsfasdf/sadfasdf/sadfasdf">Error</a></li>

...
// out alert
// hi_anyone/ddadfasd/adsfasdf/sadfasdf/sadfasdf undefined

..." LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_34632746" CREATED="1500317052040" MODIFIED="1500318036035"/>
</node>
</node>
</node>
<node TEXT="actions" ID="ID_1533176289" CREATED="1500468082710" MODIFIED="1500472937385">
<node TEXT="функции для дейтсвий (при совпадении правил routes)" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1044008749" CREATED="1500468086873" MODIFIED="1500472916080"/>
<node TEXT="могут принимать параметры" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_701590398" CREATED="1500472916746" MODIFIED="1500472925531"/>
</node>
</node>
<node TEXT="" ID="ID_1980745501" CREATED="1500472977144" MODIFIED="1500473022021">
<icon BUILTIN="info"/>
<node TEXT=" var Controller = Backbone.Router.extend({
 routes: {
 "": "start", // Пустой hash-тэг
 "!/": "start", // Начальная страница
 "!/success": "success", // Блок удачи
 },

 start: function () {
 $(".block").hide(); // Прячем все блоки
 $("#start").show(); // Показываем нужный
 },

 success: function () {
 $(".block").hide();
 $("#success").show();
 }
 });

 var controller = new Controller(); // Создаём контроллер

 Backbone.history.start(); // Запускаем HTML5 History push" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_1645639187" CREATED="1500472946812" MODIFIED="1500473211746"/>
</node>
</node>
<node TEXT="модели(Models)" POSITION="right" ID="ID_1162370519" CREATED="1411484190831" MODIFIED="1411633662355">
<edge COLOR="#00cc00"/>
<font SIZE="13"/>
<node TEXT="свойства" ID="ID_282533104" CREATED="1411543568461" MODIFIED="1411552681952">
<font SIZE="12"/>
<node TEXT="defaults" STYLE_REF="списокБезРамки" ID="ID_1963680992" CREATED="1411551983476" MODIFIED="1450364077190">
<node TEXT="установка значений "по умолчанию" у
класса моделей" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_441089663" CREATED="1411628290679" MODIFIED="1411628426336"/>
<node TEXT="var Advertisement = Backbone.Model.extend({
 defaults: {
 make: 'Тойота',
 model: 'Королла',
 year: 2010,
 price: 2000000
 }
});" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_512453807" CREATED="1411628427535" MODIFIED="1411628507351"/>
</node>
<node TEXT="intialize" STYLE_REF="списокБезРамки" ID="ID_301450419" CREATED="1411551996196" MODIFIED="1450364076573">
<node TEXT="установка методов, которые вызываются при создании
нового объекта данного класса" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1437286934" CREATED="1411628530952" MODIFIED="1411628593216"/>
<node TEXT="var Advertisement = Backbone.Model.extend({
 initialize: function() {
 console.log('Создан новый объект!');
 }
});" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_798220209" CREATED="1411628594019" MODIFIED="1411628676571"/>
</node>
</node>
<node TEXT="методы" ID="ID_402096656" CREATED="1411543800394" MODIFIED="1411552679927">
<font SIZE="12"/>
<node TEXT="get" STYLE_REF="списокБезРамки" ID="ID_1453887633" CREATED="1411544227386" MODIFIED="1450364072025">
<node TEXT="получить значения из объекта" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_862465280" CREATED="1411551906659" MODIFIED="1411551923516"/>
<node TEXT="collection.get('feild');" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_440223620" CREATED="1411628125104" MODIFIED="1411628189261"/>
<node TEXT="поля - могут быть объектами" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1644478018" CREATED="1411628192215" MODIFIED="1411628268248"/>
</node>
<node TEXT="set" STYLE_REF="списокБезРамки" ID="ID_752450710" CREATED="1411544223399" MODIFIED="1450364073557">
<node TEXT="model.set('price', 1500000);" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_1528834569" CREATED="1411544671912" MODIFIED="1411544896287">
<node TEXT="одно значение" ID="ID_1968787359" CREATED="1411553273175" MODIFIED="1411553280120"/>
</node>
<node TEXT="model.set({price: 1500000})" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_331369700" CREATED="1411544700717" MODIFIED="1411544881582">
<node TEXT="по нескольку значений" ID="ID_573197299" CREATED="1411553263745" MODIFIED="1411553270890"/>
</node>
<node TEXT="установить значение объекта" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1215246472" CREATED="1411545286621" MODIFIED="1411545312359"/>
</node>
</node>
<node TEXT="" ID="ID_99944765" CREATED="1500563170398" MODIFIED="1500563204813">
<icon BUILTIN="info"/>
<node TEXT="// расширение модели доп полями
 var AppState = Backbone.Model.extend({
 
 defaults: {
 username: "",
 state: "start",
 }
 
 });" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_959283221" CREATED="1500563205983" MODIFIED="1500563211065"/>
<node TEXT=" ...
 appState.set({ // Сохранение имени пользователя и состояния
 // кастрированный if find (true, false)
 "state": find ? "success" : "error",
 "username": username
 });
 ..." LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_1218988040" CREATED="1500563212453" MODIFIED="1500563323728"/>
<node TEXT="...
var state = this.model.get("state");
..." LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_160182062" CREATED="1500563397698" MODIFIED="1500563417461"/>
</node>
</node>
<node TEXT="коллекции(Collection)" POSITION="right" ID="ID_1054474065" CREATED="1411552445301" MODIFIED="1411552672619">
<edge COLOR="#7c0000"/>
<font SIZE="13"/>
<node TEXT="" ID="ID_1567065552" CREATED="1500563535815" MODIFIED="1500566816943">
<icon BUILTIN="help"/>
<node TEXT="прослойка между widgts и БД" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1280263815" CREATED="1500563504532" MODIFIED="1500563528223"/>
<node TEXT="коллекция данных (набор моделей)" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1152986222" CREATED="1411552839913" MODIFIED="1411632620881"/>
<node TEXT="сортированный набор моделей" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1983149196" CREATED="1500563607676" MODIFIED="1500563615751"/>
<node TEXT="rest full interface" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1062402205" CREATED="1500563627626" MODIFIED="1500563640668"/>
</node>
<node TEXT="" ID="ID_1915190122" CREATED="1500565248236" MODIFIED="1500566780942">
<icon BUILTIN="info"/>
<node TEXT=" 
 var UserNameModel = Backbone.Model.extend({ // Модель пользователя
 defaults: {
 "Name": ""
 }
 });
 
 var Family = Backbone.Collection.extend({ // Коллекция пользователей
 
 model: UserNameModel,
 
 checkUser: function (username) { // Проверка пользователя
 var findResult = this.find(function (user) { return user.get("Name") == username });
 return findResult != null;
 },
 
 });
 
 var MyFamily = new Family([ // Моя семья
 // три экземпляра класса 
 { Name: "Саша" },
 { Name: "Юля" },
 { Name: "Елизар" }
 ]);" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_289906997" CREATED="1500566770289" MODIFIED="1500566776313"/>
</node>
<node TEXT="методы" ID="ID_941260566" CREATED="1411552866971" MODIFIED="1500563498920">
<icon BUILTIN="list"/>
<node TEXT="fetch" STYLE_REF="списокБезРамки" ID="ID_1900906677" CREATED="1411554693517" MODIFIED="1500563448958">
<node TEXT="синхронизация данных с сервером" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_883781760" CREATED="1411632656400" MODIFIED="1411632926849"/>
<node TEXT="collection.fetch([/param jquery/success/ error]);" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_1414303907" CREATED="1411633032567" MODIFIED="1411633215799"/>
</node>
<node TEXT="set" STYLE_REF="списокБезРамки" ID="ID_501844722" CREATED="1411555866861" MODIFIED="1500563448969">
<node TEXT=""умное" добавление новых моделей к коллекции" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_496389194" CREATED="1411633260978" MODIFIED="1411633346036"/>
<node TEXT="collection.set(models, [option])" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_41473915" CREATED="1411633299798" MODIFIED="1411633346932"/>
</node>
<node TEXT="at" STYLE_REF="списокБезРамки" ID="ID_1089038849" CREATED="1411927002843" MODIFIED="1500563448971">
<node TEXT="получение модели, по её порядковому номеру
в коллекции" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1864372873" CREATED="1411927798903" MODIFIED="1411927866586"/>
<node TEXT="var model = collection.at(i);" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_521637679" CREATED="1411927946266" MODIFIED="1411927996378"/>
</node>
</node>
<node TEXT="attributes" ID="ID_1963670435" CREATED="1411554684459" MODIFIED="1500563494989">
<icon BUILTIN="list"/>
<node TEXT="parse" ID="ID_1494344141" CREATED="1411632683967" MODIFIED="1411632687927">
<node TEXT="задает схему обработки поступающих данных" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_80352455" CREATED="1411922868599" MODIFIED="1411926850536"/>
<node TEXT="аргумент - "сырой" объект" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1358584481" CREATED="1411926719345" MODIFIED="1411926851039"/>
<node TEXT="dataTable.parse = function(response) {
 return response.list;
};" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_432253947" CREATED="1411926851904" MODIFIED="1411926905138"/>
</node>
<node TEXT="url" ID="ID_778182607" CREATED="1411632688507" MODIFIED="1411632691923">
<node TEXT="установка url сервера, который будет
использован при вызове Backbone.sync" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_242246514" CREATED="1411633536795" MODIFIED="1411633580835"/>
<node TEXT="collection.url = "http://example.com"" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_1750753766" CREATED="1411633583659" MODIFIED="1411633624106"/>
</node>
<node TEXT="length" ID="ID_935795434" CREATED="1411928001332" MODIFIED="1411928006609">
<node TEXT="длина коллекции
наподобие массива" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1286646220" CREATED="1411928010814" MODIFIED="1411928035954"/>
<node TEXT="collectionLength = collection.length" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_1623834612" CREATED="1411928036634" MODIFIED="1411928240154"/>
</node>
</node>
</node>
<node TEXT="виджеты(Views)" POSITION="right" ID="ID_1782515964" CREATED="1411543924748" MODIFIED="1500476055296">
<edge COLOR="#00cccc"/>
<font SIZE="13"/>
<node TEXT="" ID="ID_1488429647" CREATED="1500473097189" MODIFIED="1500473097189">
<node TEXT="включает виды и логику из MVC" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_452201331" CREATED="1500473061009" MODIFIED="1500473095070"/>
<node TEXT="абстракция, которая отвечает за отображение
вида и логику (виджет)" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1172387794" CREATED="1411633813751" MODIFIED="1500473122948"/>
<node TEXT="умеет себя отображать, реагировать на события и сам создовать события" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1908577411" CREATED="1500473269295" MODIFIED="1500473292647"/>
</node>
<node TEXT="" ID="ID_409621220" CREATED="1500474487074" MODIFIED="1500474492345">
<icon BUILTIN="info"/>
<node TEXT=" 
 var Start = Backbone.View.extend({
 el: $("#start"), // DOM элемент widget'а
 events: {
 "click input:button": "alert" // Обработчик клика на кнопке "Проверить"
 },
 alert: function () {
 alert(this.el.find("input:text").val()); // вывести текст из input
 },
 });

 var start = new Start();" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_561080685" CREATED="1500474493648" MODIFIED="1500476048506"/>
</node>
<node TEXT="создание" ID="ID_648793431" CREATED="1411975991907" MODIFIED="1411976018603">
<node TEXT="var advertisementView = new AdvertisementView({ model: ad });" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_602282099" CREATED="1411634860261" MODIFIED="1411634864976"/>
<node TEXT="this.options" ID="ID_1884345165" CREATED="1411976036612" MODIFIED="1411976068473">
<node TEXT="свойтва, которые были переданы в конструктор,
при создании объекта" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_952792822" CREATED="1411976070947" MODIFIED="1411976544843"/>
<node TEXT="доступны как this.options" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1085201712" CREATED="1411976125484" MODIFIED="1411976543516"/>
</node>
<node TEXT="особые св-ва" ID="ID_1098734927" CREATED="1411977200299" MODIFIED="1411977263624">
<icon BUILTIN="messagebox_warning"/>
<cloud COLOR="#f0f0f0" SHAPE="ARC"/>
<node TEXT="model" ID="ID_636198801" CREATED="1411976555154" MODIFIED="1411976569731">
<node TEXT="прямая ссылка на модель (this.model)" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_66237063" CREATED="1411976594151" MODIFIED="1411977001434"/>
<node TEXT="используется в конструкторе для обеспечения
доступа к модели (с которой этот вид был связан)" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1069657160" CREATED="1411976629885" MODIFIED="1411976717679"/>
<node TEXT="var myView = MyViewConstructor({model: somemodel});" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_1106720834" CREATED="1411976719290" MODIFIED="1411977134259"/>
</node>
<node TEXT="collection" ID="ID_1011321959" CREATED="1411977170859" MODIFIED="1411977177854">
<node TEXT="коллекция, с которой связывается данный вид" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_700123670" CREATED="1411977504259" MODIFIED="1411977548821"/>
<node TEXT="дает доступ к коллекции по прямой ссылке( this.collecton)" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1961507167" CREATED="1411977549886" MODIFIED="1411977607246"/>
<node TEXT="var myView = MyViewConstructor({collection: myCollection});" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_213186723" CREATED="1411977607901" MODIFIED="1411977700517"/>
</node>
<node TEXT="el" ID="ID_1038327818" CREATED="1411977279616" MODIFIED="1411977455264">
<node TEXT="id" ID="ID_861564710" CREATED="1411977456053" MODIFIED="1411977462186"/>
<node TEXT="className" ID="ID_1075530543" CREATED="1411977462619" MODIFIED="1411977473750"/>
<node TEXT="tagName" ID="ID_1052413328" CREATED="1411977474185" MODIFIED="1411977479839"/>
<node TEXT="attributes" ID="ID_530964172" CREATED="1411977487293" MODIFIED="1411977498967"/>
<node TEXT="используются для создание
ссылки на el" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1510737967" CREATED="1411977938129" MODIFIED="1411978027634">
<edge COLOR="#009900"/>
<hook NAME="SummaryNode"/>
</node>
<node TEXT="может быть передан при создании в виде
объекта DOM или jquery" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_885180059" CREATED="1411977786394" MODIFIED="1411977932027"/>
<node TEXT="ссылка на родительский элемент вида" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1998156101" CREATED="1411977715146" MODIFIED="1411977785689"/>
</node>
</node>
</node>
<node TEXT="свойства" ID="ID_1315863974" CREATED="1411633678752" MODIFIED="1411633799091">
<node TEXT="el" ID="ID_1015566451" CREATED="1411634061478" MODIFIED="1411634064678">
<node TEXT="указавает на родительский элемент
(формируется из свойств tagName,
className, id, attributes)" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1857009017" CREATED="1411634070995" MODIFIED="1411929219969"/>
<node TEXT="может указывать на существующий
(тогда все элементы отрисуются сразу),
либо на не существующий элемент" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1998051725" CREATED="1411974278045" MODIFIED="1411974412725"/>
<node TEXT="по умолчанию пустой div" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1857058067" CREATED="1411929221080" MODIFIED="1411929239406"/>
<node TEXT="var AdvertisementView = Backbone.View.extend({
 el: '#list-1'
});" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_1543212210" CREATED="1411634409209" MODIFIED="1411634521701"/>
<node TEXT="$el" ID="ID_1618445724" CREATED="1411634523734" MODIFIED="1411634561879">
<node TEXT="то же самое, что и el но в обетке jquery
$(this.el)." LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1282882172" CREATED="1411634577341" MODIFIED="1411634644098"/>
</node>
</node>
<node TEXT="initialize" ID="ID_1148363102" CREATED="1411974469713" MODIFIED="1411974480064">
<node TEXT="вызывается при создании объекта" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_888285216" CREATED="1411974483831" MODIFIED="1411974556048"/>
<node TEXT="var MyView = Backbone.View.extend({
 initialize: function() {
 this.render();
 },
});" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_719366444" CREATED="1411974556639" MODIFIED="1411975836457"/>
</node>
<node TEXT="" ID="ID_1207414256" CREATED="1411975942973" MODIFIED="1411975942973"/>
</node>
<node TEXT="методы" ID="ID_1955275745" CREATED="1411633802937" MODIFIED="1411633806044">
<node TEXT="render" ID="ID_1555051229" CREATED="1411634995305" MODIFIED="1411634999427">
<node TEXT="" ID="ID_481300513" CREATED="1500478899903" MODIFIED="1500478899903">
<node TEXT="пользовательский метод" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1082298114" CREATED="1411974122467" MODIFIED="1500478788806"/>
<node TEXT="вызов шаблонизатора, или любого другого способа отображения данных" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_530104796" CREATED="1411974265094" MODIFIED="1500478825474"/>
<node TEXT="шабланизатор от underscore.js" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_875861853" CREATED="1500478830577" MODIFIED="1500478935783" LINK="http://underscorejs.ru/#template"/>
</node>
<node TEXT="" ID="ID_1336852393" CREATED="1500478979503" MODIFIED="1500478984921">
<icon BUILTIN="info"/>
<node TEXT=" var Success = Backbone.View.extend({
 el: $("#block"), // DOM элемент widget'а

 template: _.template($('#success').html()),

 render: function () {
 $(this.el).html(this.template(AppState));
 }
 });" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_518968146" CREATED="1500478938246" MODIFIED="1500478975750"/>
</node>
</node>
</node>
<node TEXT="связать с моделью" ID="ID_1042958542" CREATED="1411633806668" MODIFIED="1411634681807"/>
</node>
<node TEXT="события(Events)" POSITION="right" ID="ID_1046924303" CREATED="1411545412427" MODIFIED="1411552628119">
<edge COLOR="#666600"/>
<node TEXT="on" ID="ID_1273326738" CREATED="1411633383535" MODIFIED="1411633385948">
<node TEXT="привязка события на конкретные данные
(атрибут модели, модель коллекции и так далее)" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_1919839216" CREATED="1411633389933" MODIFIED="1411633442902"/>
<node TEXT="var ad = new Advertisement({
 make: 'Mazda',
 model: 'Atenza',
 year: 2007,
 price: 1700000
});

ad.on('change:price', function() {
 alert('Новая цена: ' + this.get('price'));
});" LOCALIZED_STYLE_REF="defaultstyle.note" ID="ID_185319942" CREATED="1411633443842" MODIFIED="1411633498951"/>
</node>
<node TEXT="listenTo" ID="ID_1574437758" CREATED="1411982107292" MODIFIED="1411982125932"/>
<node TEXT="listenToOnce" ID="ID_635685382" CREATED="1411991111091" MODIFIED="1411991121020"/>
<node TEXT="off" ID="ID_255705792" CREATED="1411991121922" MODIFIED="1411991125717"/>
<node TEXT="список событий" ID="ID_1557968335" CREATED="1411991128835" MODIFIED="1411991159380">
<icon BUILTIN="list"/>
</node>
</node>
<node TEXT="Marionette.js" POSITION="left" ID="ID_114309032" CREATED="1411484875563" MODIFIED="1411484906827">
<edge COLOR="#ff00ff"/>
<font SIZE="12"/>
</node>
<node TEXT="sources" POSITION="left" ID="ID_1823989146" CREATED="1500476085824" MODIFIED="1500476096199">
<edge COLOR="#007c7c"/>
<node TEXT="backbone для чайников, статья" STYLE_REF="списокБезРамки" ID="ID_156253359" CREATED="1500476107040" MODIFIED="1500476137641" LINK="https://habrahabr.ru/post/127049/"/>
</node>
<node TEXT="" POSITION="left" ID="ID_1722112212" CREATED="1411484070757" MODIFIED="1411484089438">
<icon BUILTIN="help"/>
<edge COLOR="#ff0000"/>
<node TEXT="библиотека для структурирования кода" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_853834115" CREATED="1411484093255" MODIFIED="1411539263871"/>
<node TEXT=" удачный "велосипед"" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_73843662" CREATED="1411484100584" MODIFIED="1411544640910"/>
<node TEXT=" Джереми Ашкенас" LOCALIZED_STYLE_REF="defaultstyle.details" ID="ID_752923859" CREATED="1500307408334" MODIFIED="1500307478734"/>
</node>
<node TEXT="зависимости" POSITION="left" ID="ID_1369204426" CREATED="1500307724035" MODIFIED="1500307730535">
<edge COLOR="#007c00"/>
<node TEXT="Underscore.js" STYLE_REF="списокБезРамки" ID="ID_725716432" CREATED="1500307747288" MODIFIED="1500311251363"/>
<node TEXT="jQuery.js" STYLE_REF="списокБезРамки" ID="ID_525704643" CREATED="1500307752343" MODIFIED="1500311250583"/>
</node>
</node>
</map>