私のbackbonejsアプリケーションでは、 ?example.com/?stat=#users
に移動すると、アプリは自動的にページをリロードします。router.navigate('users')
戻るボタンを押すと、URLが読み込まれるexample.com/#users
ため、目的のページに正しくアクセスしてから読み込みexample.com/?stat=#users
ます。
私が直面している問題は何ですかtrigger
?オプションを変更しようとしましたが、修正できませんか?そして、私はそれが何であるかについてのより多くの情報を見つけることができません?state=#...
(私は仮定をすることができますが、簡潔な文書は非常に役に立ちます)?
削除されたルートファイル:
class window.AppRouter extends Backbone.Router
routes:
"": "list"
"users": "list"
"user/:id": "userDetails"
list: ->
@before()
before: (callback) ->
if @users?
callback() if callback?
else
@users = new Users
@users.fetch(
success: ->
$('#sidebar').html(new UsersView({model: app.users}).render().el)
callback() if callback)
userDetails: (id) ->
@before ->
user = app.users.get( id)
if user?
console.log('inside if')
app.showView( '#content', new UserView( {model: user}))
showView: (selector, view) ->
@currentView.close() if @currentView?
$(selector).html(view.render().el)
@currentView = view
return view
私の削除されたビューファイル:
class window.UsersView extends Backbone.View
tagName:'ul'
className: 'nav nav-pills nav-stacked'
initialize: ->
@userViews = new Array
@model.bind("reset", @render, this)
@model.bind("add", (user) =>
@$el.append( new UserInListView({model: user}).render().el))
render: (event) ->
_.each(
@model.models
(user) =>
userView = new UserInListView( {model: user})
@userViews.push( userView)
@$el.append( userView.render().el)
this)
return this
class window.UserInListView extends Backbone.View
tagName:"li"
initialize: ->
@template = _.template(tpl.get('user_in_list'))
@model.bind("change", @render, this)
@model.bind("destroy", @close, this)
render: (event) ->
@$el.html( @template( @model.toJSON()))
return this
events:
"click a": "select"
select: ->
$("#sidebar>ul>li.active").removeClass("active")
@$el.addClass( 'active')
app.navigate("user/#{@model.id}", true)
class window.UserView extends Backbone.View
initialize: ->
templateName = 'user_edit'
@template = _.template(tpl.get(templateName))
@model.bind("change", @render, this)
events:
"click .cancel": "cancel"
cancel: ->
@remove()
app.navigate('users', false)
何が原因なのかよくわかりませんが、それは拘束力ですか?それはtwitter-bootstrapですか?ルーターの設定方法ですか?URLに直接アクセスしても問題は発生しませんが、ルーターがそこに移動するとどうして問題が発生するのでしょうか。