Advertisement
Guest User

Untitled

a guest
Apr 25th, 2015
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. 'use strict';
  2.  
  3. var $ = require('jquery');
  4. var _ = require('underscore');
  5. var Backbone = require('backbone');
  6. Backbone.$ = $;
  7.  
  8. var h = require('virtual-dom/h');
  9. var diff = require('virtual-dom/diff');
  10. var patch = require('virtual-dom/patch');
  11. var createElement = require('virtual-dom/create-element');
  12. var VNode = require('virtual-dom/vnode/vnode');
  13. var VText = require('virtual-dom/vnode/vtext');
  14. var convertHTML = require('html-to-vdom')({
  15. VNode: VNode,
  16. VText: VText
  17. });
  18.  
  19. var MainView = Backbone.View.extend({
  20.  
  21. template: require('../templates/main.tpl'),
  22.  
  23. tagName:'section',
  24. className:'main',
  25.  
  26. initialize: function(){
  27. this.listenTo(this.model,'change',this.render);
  28. this.count = 0;
  29.  
  30. this.tree = h("div"); // initial state
  31. this.rootNode = createElement(this.tree);
  32. this.$el.append(this.rootNode);
  33. setInterval(_.bind(this.render,this),500);
  34. },
  35.  
  36. render: function(){
  37. this.model.set({status:this.count++}, {silent:true});
  38. var newTree = convertHTML(this.template(this.model.attributes));
  39. var patches = diff(this.tree, newTree);
  40. this.rootNode = patch(this.rootNode, patches);
  41. this.tree = newTree;
  42. return this;
  43. }
  44.  
  45. });
  46.  
  47. module.exports = MainView;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement