Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.12.2014, 15:37
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Вопрос по backbone - не срабатывает событие
Только начинаю разбираться с backbone. Может кто подскажет, почему не срабатывает событие?
Test=Backbone.Model.extend({
	constructor: function() {
		this.maewe=100;
	},
	initialize:function(){
		this.on('all',function(){
			console.log('СОБЫТИЕ');
		})
		
	},
	increase:function(){
		this.maewe++;
		}
})

$(document).ready(function() {
	var test=new Test();
	$('#myButton').on('click',function(){
		test.increase();
		console.log(test.maewe);
	});
})

Тут для теста взял переменную maewe.
При нажатии на кнопку #myButton запускаю функцию увеличивающую maewe на единицу. console.log(test.maewe); - пишет все верно 101,102,103 и т.д., но this.on('all',function(){
console.log('СОБЫТИЕ');
}) - не срабатывает, ставил - change:maewe - тот же результат. В чем тут может быть загвоздка?
Ответить с цитированием
  #2 (permalink)  
Старый 28.12.2014, 17:46
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Во-первых, зачем тебе нужно переопределять конструктор? Во-вторых, используй геттеры и сеттеры, а не просто пиши свойства.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8"

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.7.0/underscore.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone.js"></script>

</head>
<body>
<button id="myButton">asd</button>

<script>
var Test = Backbone.Model.extend({
  defaults: {
    maewe: 100
  },
  initialize: function() {
    this.on('all', function() {
      console.log('СОБЫТИЕ');
    })
  },
  increase: function() {
    this.set({
      maewe: this.get('maewe') + 1
    });
  }
})

$(document).ready(function() {
  var test = new Test();
  $('#myButton').on('click', function() {
    test.increase();
    console.log(test.get('maewe'));
  });
})
</script>

</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 28.12.2014, 17:55
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Backbone никак не следит за изменением данных модели, ни по таймеру, ни через Object.observe, ни каким другим способом. Спровоцировать событие при изменении данных можно при помощи метода set, как в примере jsnb
Ответить с цитированием
  #4 (permalink)  
Старый 28.12.2014, 19:28
Кандидат Javascript-наук
Отправить личное сообщение для vuler Посмотреть профиль Найти все сообщения от vuler
 
Регистрация: 16.02.2012
Сообщений: 109

Спасибо за ответ. Буду дальше изучать. Вообще вопрос такой - backbone - стоит траты на него времени и усилий или есть фреймворки,которые те же задачи решают проще и умеют еще много чего. Вообще мне нужна библиотека которая позволит создавать классы аналогичные php, чтобы можно было в конструкторе прописать все ДОМ - элементы с которыми буду работать, а из методов класса к ним легко обращаться.
Ответить с цитированием
  #5 (permalink)  
Старый 28.12.2014, 21:20
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от vuler
умеют еще много чего
Backbone не из этой серии, это наоборот минимальный набор.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Backbone вопрос по View с вложенными данными mue Библиотеки/Тулкиты/Фреймворки 1 04.01.2013 01:30
Повесить событие на кнопку, не меняя кода кнопки Weks Общие вопросы Javascript 8 11.11.2012 16:13
Как правильно подавить событие при подключении своего обработчика? Маэстро Firefox/Mozilla 2 03.09.2011 11:46
Некорректно срабатывает событие DZHETIGAPA Events/DOM/Window 4 12.05.2011 22:28