gpt4 book ai didi

javascript - 重定向或呈现事件的另一个 View

转载 作者:行者123 更新时间:2023-12-02 14:07:30 25 4
gpt4 key购买 nike

我正在 Backbone 中构建一个小型 CRUD 应用程序,但我有点需要从一个 View 重定向到另一个 View 。我的应用程序由一个布局 View (其中呈现其他 View )和一个路由器组成。这是:

var router = Backbone.Router.extend({
routes: {
'': 'home',
'resumes/:id': 'showResume'
},

home: function () {
// renders a index view with my collection
this.layout.render(new ResumeList({collection: resumes});
},
showResume: function () {
if (!this.fullResume) {
this.fullResume = new FullResume({model: new Resume()});
}
// allowing to navigate via url with model id
this.fullResume.model.set('id', id).fetch({
context: this,
success: function () {
this.layout.render(this.fullResume);
}
});
}
});

然后,在我的 FullResume View 中,我有一个 delete 事件,该事件会破坏模型。就这样:

var FullResume = Backbone.View.extend({
// tagName and other stuff
events: {
// other events
'click #delete': 'deleteResume'
},
// initialize, render and other functions
deleteResume: function () {
this.model.destroy({
success: function (res) {
console.log('DELETE model' + res.toJSON().id);
},
error: function () {
console.log('Failed to DELETE');
}
});
}
});

上面的函数完美地工作并删除了模型,但是删除模型后它仍然保留在它的 View 中,直到我手动导航到某个地方。我读了一点并尝试管理如何在此事件后渲染主视图或重定向到它,但没有成功太多。

最佳答案

您正在寻找http://backbonejs.org/#Router-navigatetrigger 选项设置为 true 的函数。

这是一个示例:http://jsfiddle.net/x3t7u5p0/

单击“主页”或“关于”链接将更改 View ,但是我添加了延迟的编程 View 更改,当“关于” View 呈现时,它将在延迟后切换回主页

  render: function () {
this.$el.html(this.template);
_.delay(function() {
appRouter.navigate('home', {trigger: true});
}, 500);
}

关于javascript - 重定向或呈现事件的另一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39919764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com