gpt4 book ai didi

javascript - 如何在相应路线外设置新建和保存按钮

转载 作者:行者123 更新时间:2023-11-30 12:53:31 25 4
gpt4 key购买 nike

我有一个很容易用图片解释的挑战: Explanation of ApplicationController and ArticlesController

我想要的是,当我点击保存时,saveArticle 操作在 App.ArticlesNewController 中被调用。

模板

<div class="buttonBlock">
{{#linkTo "articles.new" class="newButton"}}Nieuw{{/linkTo}}
{{#linkTo action="saveArticle" class="newButton storeButton"}}Opslaan{{/linkTo}} // generates an error: "This link-to is in an inactive loading state because at least one of its parameters presently has a null/undefined value, or the provided route name is invalid. "
</div>

路线

App.Router.map(function () {
this.resource('articles', {path: "/articles"}, function() {
this.resource('article', {path: '/:article_id'}); // works fine
this.route('new', {path: "/new"}); // displays also without errors
});
});

Controller

App.ApplicationController = Ember.ObjectController.extend({
actions: {
// got never called
saveArticle: function () {
console.log('ApplicationRoute saveArticle action');
this.controllerFor('articles.new').send('saveArticle')
}
}
});

路线

App.ArticlesNewRoute = Ember.Route.extend({
renderTemplate: function () {
console.log('ArticlesNewRoute try to render article with controller articles.new');
this.render('article', {
controller: 'articles.new'
});
},
model: function () {
console.log('ArticlesNewRoute returning model');
return this.store.createRecord('article');
},

actions: {
// this will never be called
saveArticle: function () {
console.log('ArticlesNewRoute saveArticle action');
this.currentModel.save();
}
}
});

请注意,目前我在 App.ArticlesNewRoute 中有针对新文章的操作,目前显然不适用于 this.controllerFor('articles.new').send( 'saveArticle') 调用。

saveArticle 操作的真正问题在于,它也从不在 App.ApplicationController 中调用。

我还在我的模板中使用了 {{controller}}。而且我确信模板中的按钮由 App.ApplicationController 处理,但是永远不会触发调用。

有什么想法吗?

最佳答案

您的代码中几乎没有问题

1) link-to 仅用于路由。对于您的情况,我建议遵循以下操作。

<a class="newButton storeButton" {{action "saveArticle"}}>Opslaan</a>

2) 你不应该在 Controller 中使用 this.controllerFor()。据我所知,它已被弃用。目前仅在 route 可用。您应该使用 needs 并尝试从中访问 Controller 。点击链接了解有关需求的更多信息。

http://darthdeus.github.io/blog/2013/01/27/controllers-needs-explained/

关于javascript - 如何在相应路线外设置新建和保存按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20125916/

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