Съдържание
Javascript ни позволява да използваме асинхронни събития, с които можем да генерираме действия, поради което имаме голям успех при използването на рамки като jQuery които могат да слушат за промяна в DOM дървото и да изпълняват функция, докато останалата част от страницата все още работи.Директен достъп
Преди да видим как да се справим с промените в модела, ключова концепция, която трябва да обработим, е директният достъп до атрибути, това е благодарение на атрибут .атрибути който е в модела, от който наследяваме, за да направим нашия.
ВажноКогато правим присвояване на стойности, използвайки този метод, пропускаме, че той е детониран в нашия модел и при преминаване на атрибут {безшумен: вярно} всичките му събития са напълно заглушени.
Нека видим в следния примерен код, към който се отнасяме:
Както можем да видим в примера при използване {тихо: вярно} той не открива никаква промяна в нашия модел.
Чуйте промените в модела
Слушането на промените в нашите модели може да бъде много полезно, тъй като можем да извършваме различни действия, като по този начин даваме на нашето приложение повече динамика.
В следния пример ще отпечатаме ред, показващ всеки път, когато даден атрибут се промени, след това ще отпечатаме стойността на атрибута, за това в метода инициализирайте на модела, към който ще включим обаждане по метода и ние ще ви кажем какво е това в събитието промяна което трябва да работи:
Ако изпълним този код, ще получим ред за всеки път, когато моделът се променя, и допълнително първоначален ред, когато моделът се инициализира.
Нека видим какво ни дава резултатът:
Увеличете
Виждаме, че получаваме два реда, казващи, че моделът се е променил, това количество съвпада с двата пъти, когато използваме метод ser () За да придадем стойност на атрибутите на модела, виждаме също как е отпечатан редът за инициализация на модела.Чуйте промени в определен атрибут
Това опцията ни позволява да изпълним действие, когато даден атрибут се промениТова, което можем да постигнем с това, е, че можем да насочваме различни действия, независимо дали един атрибут се променя или друг, с това ще постигнем много по -динамична независимост на събитията в приложението.
Нека да видим в следния код как можем да направим това:
var Todo = Backbone.Model.extend ({// По подразбиране стойностите на атрибутите: {title: '', завършено: ''}, initialize: function () {console.log ('Този модел е инициализиран'); this.on ('change: title', function () {console.log ('Стойността на атрибута на заглавието се е променила.');});}, setTitle: function (newTitle) {this.set ({title: newTitle} );}}); var myTodo = нов Todo (); // И двете форми задействат събитието за промяна: myTodo.set ('title', 'Ние сме поставили първоначално заглавие.'); myTodo.setTitulo ('Променихме заглавието.'); myTodo.set ('завършено', 'Не задейства събитие');
На следното изображение можем да видим как изглежда всичко, след като изпълним кода от предишното упражнение:
Увеличете
Можем да поправим, че само промяната на заглавния атрибут задейства събитието, при промяна на завършения атрибут нищо не се случва и следователно нищо не се отпечатва от конзолата.В края на този урок вече имаме много по -широки познания относно обработката на различните събития от нашето приложение в Backbone.js.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка