Backbone.js - 在视图上的“单击”事件之后导航到路径

时间:2011-09-22 08:07:30

标签: javascript backbone.js

我的“视图”设置如下。简单。

var ItemView = Backbone.View.extend({
  tagName : "li",

  events : {
    "click" : "display"
  },

  display : function() {
    //app.navigate('item'); // take me to my route!
  }
});

我有我的路由器

var App = Backbone.Router.extend({

  routes: {
    "" : "index",
    "item" : "view_item"
  },

  index: function() {
    alert('hi!');
  },

  view_item: function() {
    alert('bye!');
  }
});

app = new App();
Backbone.history.start();

现在,当我点击ItemView时,它应该运行“display”方法,我希望display方法将我带到我在路径“item”中指定的路径。

这可能吗?我认为“导航”功能会起作用,但事实并非如此。我怎么能做到这一点?

2 个答案:

答案 0 :(得分:49)

 display : function() {
    app.navigate('item', true);
  }

您需要将第二个参数设置为true。

来自Backbone文档:

  

navigaterouter.navigate(fragment,[triggerRoute])   每当您在应用程序中找到要保存为URL的点时,请调用导航以更新URL。如果您还想调用路由功能,请传递triggerRoute。

答案 1 :(得分:0)

如果您正在使用"或者您可以直接从html执行此操作。 a>"标签

示例:

<a href="#item">Show Itens</a>

它也有效,我当然可以这样做。