Javascript.RU

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

Привязка модели к дом элементам.
Добрый день.

Преамбула:
Есть некая модель, которую нужно отобразить в, например, таблице.
Потом пользователь захочет изменять эти данные, он нажимает на ячейку в таблице и должна происходить магия (данные изменяются в таблице и записываются в модель, которая взаимодействует с чем-то еще).

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

З.Ы. Пишу совсем недавно.
Ответить с цитированием
  #2 (permalink)  
Старый 06.08.2013, 13:59
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Тут бы пример какой-то не помешал бы...
Ответить с цитированием
  #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.
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2013, 19:32
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

в простейшем случае: отсылаешь ajax-запрос с новыми данными (координаты ячейки + содержимое), записываешь в базу,
если таблица потенциально может менять свою структуру, следует подумать об eav
Ответить с цитированием
  #5 (permalink)  
Старый 07.08.2013, 09:51
Новичок на форуме
Отправить личное сообщение для pyatil Посмотреть профиль Найти все сообщения от pyatil
 
Регистрация: 06.08.2013
Сообщений: 3

модель в самом приложении.
Как определить что именно эти координаты соответсвуют конкретному полю в базе данных? Какие есть способы?
Ответить с цитированием
  #6 (permalink)  
Старый 07.08.2013, 21:22
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от pyatil
модель в самом приложении.
это не есть гуд, модель и база данных - понятия очень даже совместимые

Сообщение от pyatil
Как определить что именно эти координаты соответсвуют конкретному полю в базе данных? Какие есть способы?
SELECT content WHERE x = my_x AND y = my_y
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
backbone - модели и json torsar Библиотеки/Тулкиты/Фреймворки 1 12.02.2013 15:26
службы доставки товаров Tim Серверные языки и технологии 7 02.12.2012 01:18
Проблема с созданием картинки на Php faiq Серверные языки и технологии 2 01.12.2012 00:21
Привязка событий к динамически созданным элементам htaccess Общие вопросы Javascript 5 10.05.2011 22:36
mvc вызов модели из модели jetli13 Серверные языки и технологии 2 28.10.2010 12:09