ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ — ΡΡΠΎ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠ΅Π½Π½ΡΠ΅ Π½Π°Π±ΠΎΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π²Π΅ΡΠΈΡΡ ΡΠ»ΡΡΠ°ΡΠ΅Π»Π΅ΠΉ: Π½Π° ΡΠΎΠ±ΡΡΠΈΠ΅ «change», ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π»ΡΠ±Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ; Π½Π° ΡΠΎΠ±ΡΡΠΈΡ «add» ΠΈ «remove»; Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ (fetch) ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Ρ ΡΠ΅ΡΠ²Π΅ΡΠ° — ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Underscore. js.
ΠΡΠ±ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ Π½Π°ΠΏΡΡΠΌΡΡ — Π΄Π»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° — Π½Π° ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΏΡΡΠΌΡΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠΎΠ±ΡΡΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
Π§ΡΠΎ Π±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, ΡΠ½Π°ΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ.
App. Models. PesonModel = Backbone. Model. extend ({
defaults: {
name: 'Vlad',
age: 20, job: 'Web-developer'
}
});
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ, ΠΌΡ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π°ΡΠ΅ΠΉ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
App. Collentions. Friends = Backbone. Collection. extend ({
model: App. Models. FriendModel
});
Π’Π°ΠΊ ΠΆΠ΅, ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π½Π°ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ.
var friendsCollections = new App. Collentions. Friends ([
{
name: 'Andrei',
age: 22, job: 'Web-developer'
},
{
name: 'Denis',
age: 25, job: 'Web-developer'
},
{
name: 'Ivan',
age: 25, job: 'Web-developer'
}
]);
Π ΠΎΡΡΠ΅Ρ (Router)
ΠΠ΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅, ΡΠ΄Π΅Π»Π°Π² Π·Π°ΠΊΠ»Π°Π΄ΠΊΡ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΊ URL ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. ΠΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΡΡΠΈΡ
ΡΠ΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Ρ
ΡΡΠΈ (#page), Π½ΠΎ Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ History API ΡΡΠ°Π»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ URL ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° (/page). Backbone. Router ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ ΡΡΠΈΡ
Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Ρ ΡΠΎΠ±ΡΡΠΈΡΠΌΠΈ. ΠΠ»Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ History API, Router Π²Π΅ΡΡΠΌΠ° ΡΠ»Π΅Π³Π°Π½ΡΠ½ΠΎ ΠΏΡΠΎΠ΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ URL.
ΠΠΎ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΅ΠΌΡ ΡΠΎΡΡΠ΅ΡΡ, Π½Π΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ Π²ΡΠ·Π²Π°ΡΡ Backbone. history. start () ΠΈΠ»ΠΈ Backbone. history. start ({pushState: true}), ΡΡΠΎΠ±Ρ Π·Π°Π΄Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ ΡΠ²ΠΎΠΉ ΠΊΠ»Π°ΡΡ-ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΎΡ, Π½ΡΠΆΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ Backbone. Router.
App. Router = Backbone. Router. extend ({
routes: {
'': 'index',
'profile': 'profile',
'friends': 'friends',
'settings': 'settings'
},
index: function () {
console. log ('Π‘ΡΠ°ΡΡΠΎΠ²Π°Ρ');
},
profile: function () {
},
friends: function () {
},
settings: function () {
}
});
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½Π°Ρ ΡΠΎΡΡΠ΅Ρ.
new App. Router;
Backbone. history. start ();