2015-02-26 4 views
0

Я полный новичок JS и Mongoose/Mongoose/Express/Node/Backbone/Require stack ... так что есть чему поучиться, и это вполне возможно. пропустил что-то здесь. Однако я пытаюсь сохранить результат в виде представленного затем переместить пользователя на другую точку зрения, если сохранить действие было успешным, поэтому мой взгляд выглядит примерно так:Позвоните по новому Вид с другого взгляда на магистраль

define(['CoreView', 'text!templates/profile.html', 'models/Account'], 

function(CoreView, profileTemplate, Account) { 
    var profileView = CoreView.extend({ 
     el:   $('#content'), 

     events:  {'submit form': 'update'}, 

     template: _.template(profileTemplate), 

     update:  function() { 
         /* 
         * Gather the form data... then: 
         */ 
         $.post('/accounts/' + this.model.get('_id'), 
          {data: formData}, 
          function(response) { 
           if (response == 'OK') { 
            $.get('/#index'); // NO CHANGE??? 
            } else { 
            console.err('Save Failed :('); 
            } 
           }); 
          return false; 
          }, 


     render:   function() { 
          if (this.model.get('_id') !== 'me') { 
           this.$el.html(this.template(this.model.toJSON())); 
           } 
          return this; 
          } 
     }); 

return profileView; 
}); 

Теперь она вполне может быть Я пропустил какой-то механизм в маршрутизации, где я могу указать такую ​​вещь, любые советы о том, почему это не работает, или лучшее решение приветствуется.

+0

Не то, что это * невозможно * для того, чтобы работать таким образом, но, как правило, хэш-фрагмент маршруты start '# /', за которым следует маршрут. Вам не хватает косой черты для соответствия действующему маршруту? Кроме того, я знаю, что такие вещи, как сама документация Backbone, работают таким образом (нет '/'), но мало что может быть проблемой. – rockerest

+0

Привет, хорошо, что эти мелочи часто являются проблемой. Я попробовал следующее со следующими результатами: 'index 404' '#index Nothing' '/ # index Nothing' '#/index Nothing'. FYI некоторые якоря в html, которые работают, используют href = "# index". – JavaDevGuy

ответ

0

$.get() выдает запрос GET для страницы - он не делает ничего, чтобы «переместить пользователя на другое представление». Для этого вы можете использовать:

document.location.href = /#index` 

Или лучшее решение, если у вас есть Backbone.Router или аналогичные:

router.navigate('index') 
+0

Спасибо, это помогло мне выяснить, что делать, в конце концов я переключил хеш местоположения окна как индекс. Я согласен с тем, что лучше использовать маршрутизатор. – JavaDevGuy