Показать сообщение отдельно
  #3 (permalink)  
Старый 06.08.2013, 14:20
Новичок на форуме
Отправить личное сообщение для pyatil Посмотреть профиль Найти все сообщения от pyatil
 
Регистрация: 06.08.2013
Сообщений: 3

// Generated by CoffeeScript 1.6.1
(function() {
  var $, List, Work,
    __hasProp = {}.hasOwnProperty,
    __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
    _this = this;

  $ = jQuery;

  Work = (function(_super) {

    __extends(Work, _super);

    function Work() {
      return Work.__super__.constructor.apply(this, arguments);
    }

    Work.configure("Work", "author", "work_name", "work_link", "pub_date", "change_date", "size");

    Work.extend(Spine.Model.Ajax);

    Work.url = "/samlib/profile_user_json/";

    Work.fetch = function(clear) {
      if (clear) {
        console.log("clear: " + clear.clear);
        this.deleteAll();
      }
      return Work.__super__.constructor.fetch.apply(this, arguments);
    };

    return Work;

  })(Spine.Model);

  List = (function(_super) {

    __extends(List, _super);

    List.prototype.className = 'List';

    List.prototype.events = {
      'click li': 'my_click'
    };

    function List() {
      var _this = this;
      this.logged = function(auth) {
        return List.prototype.logged.apply(_this, arguments);
      };
      this.addAll = function() {
        return List.prototype.addAll.apply(_this, arguments);
      };
      this.addOne = function(task) {
        return List.prototype.addOne.apply(_this, arguments);
      };
      this.render = function(message) {
        return List.prototype.render.apply(_this, arguments);
      };
      List.__super__.constructor.apply(this, arguments);
      Work.bind('refresh', this.addAll);
      Spine.bind('login:change', this.logged);
    }

    List.prototype.my_click = function(e) {
      return e.preventDefault();
      /*
      	здесь какой-то код который должен найти по переданному элементу элемент в модели
      */

    };

    List.prototype.render = function(message) {
      return console.log(message);
    };

    List.prototype.addOne = function(task) {
      if (task.work_name) {
        this.teml = "<li><a href='" + task.work_link + "'>" + task.work_name + "</a></li>";
        $("#list").append(this.teml);
        return this;
      }
    };

    List.prototype.addAll = function() {
      return Work.each(this.addOne);
    };

    List.prototype.logged = function(auth) {
      console.log(Spine.auth);
      return Work.fetch({
        clear: true
      });
    };

    Work.fetch();

    return List;

  })(Spine.Controller);

  $(function() {
    return new List({
      el: $("#works")
    });
  });

}).call(this);

В коде используется фреймоврк Spine.js

Как я себе это вижу:
У каждого элемента в модели есть индентификатор, вставлять его в каждый элемент и по нему уже тогда идентифицировать. Но возможно есть более правильные способы, я хотел о них узнать, как вообще называется это связывание правильно, на английском, чтобы поискать материал по этой теме.

Последний раз редактировалось pyatil, 06.08.2013 в 14:35.
Ответить с цитированием