Ответы пользователя по тегу Backbone.js
  • Polymer + Backbone?

    nonlux
    @nonlux
    >Polymer.js + Backbone
    Эту конкретную связку не рассматривал. Но писал свой шаблонизатор.
    Все достаточноко просто заменяется. Так что если вы хотите Polymer дерзайте )
    Ответ написан
    3 комментария
  • Что делает appointments.fetch({silent: true});?

    nonlux
    @nonlux
    Вот https://github.com/jashkenas/backbone/blob/master/... главный учебник
    Я так понимаю что appointments -коллекция
    appointments.fetch() получает данные от сервера:

    Line: 999
        fetch: function(options) {
    //добавляем  параметры по умолчанию 
    // parse - говорит о том, что ответ от сервера мы из json превращаем в объект
          options = _.extend({parse: true}, options);
          var success = options.success;
          var collection = this;
    //добавляем  обработку  запроса 
    // вернемся к нему позже
          options.success = function(resp) {
           ...
          };
          wrapError(this, options);
    //  запускаем Backbone.sync
          return this.sync('read', this, options);
        },
     //  итак мы подготовили обработчики  запроса
    // теперь запрос
    
    Line: 1338
    Backbone.sync = function(method, model, options) {
    //Наш метод read - значит запрос будет GET
        var type = methodMap[method];
    //далее куча опций
    ...
        // и проверка url ( коллекция должна иметь url, мы же об этом помним)
        if (!options.url) {
          params.url = _.result(model, 'url') || urlError();
        }
    // далее всякая дребедень )))
    ...
     
        // запускаем jQuery ajax ( ищи в jQuery)
        var xhr = options.xhr = Backbone.ajax(_.extend(params, options));
    
      // Коллекция кричит  "Эй я запрос послала"
        model.trigger('request', model, xhr, options);
        return xhr;
    
    
    
    // Далее мы сидим, курим, короче ждем пока запрос наш сервер вернет.
     // Как только это произошло, в дело вступает options.success (помните в самом начале)
    Line 1006
     options.success = function(resp) {
     // в нашем случае метод set
    //  т.е  мы будем добавлять данные коллекцию
            var method = options.reset ? 'reset' : 'set';
          // как я и написал чуть выше это выглядит так collection.set(resp,options)
            collection[method](resp, options);
         // эта ерунда  на не интересует 
            if (success) success.call(options.context, collection, resp, options);
        // Коллекция крикливая попалась
       //  И крик ее от том, что что она все данные получила и решила пойти постать
            collection.trigger('sync', collection, resp, options);
          };


    с set попробуйте разобраться сами. Там как раз о silent: true
    Ответ написан
    Комментировать