Ember.JS - 提交按钮 运行 查询和 returns JSON 对象到模板。我是 运行 服务中的查询,作为模型还是在路由中?

Ember.JS - Submit button runs a query and returns JSON object to template. Do I run the query in a service, as a model or in a route?

我还是个新手,我正在将应用程序从 Node Express 转换为 Ember 我对 Ember 中涉及的一些方法感到困惑。

在当前的应用程序中有一个提交的表单,然后根据输入执行查询 - 将结果播种到新模板中。在当前应用程序的 app.js 中有一个 switch 语句 POST:

app.post('/test', function(req, res){
switch(req.body.module) {
    case "Option 1":
  getOption1Results(req, res);
    break;
    case "Option2":
  getOption2Results(req, res)
  break;
    case "Option 3":
  getOptio3Results(req, res)
  break;
  case "Option 4":
  getOption4Results(req, res)
  break;
  default:
    console.log("didn't work")

}

要在 Ember 中获得相同的结果,我不知道我是应该创建服务来执行上述操作,还是创建路由并在传递给模板的模型中执行查询。或者,如果我需要通过表单提交按钮的操作来处理它。

非常感谢任何建议。

我会做的是:

  • 创建向用户显示表单的路由
  • 对表单执行操作,以便在提交表单时调用操作。如果您愿意,可以在这里验证表格
  • 制作一个服务来执行查询(或者你也可以使用控制器,但我个人不喜欢它们)

要在表单提交上调用操作(通过按下提交按钮和按下回车键),您可以这样做:

<form {{action "onSubmitAction" on="submit"}}>
    {{input type="text" value="foobar"}}
    <button type="submit">Save</button>
</form>

然后在您的控制器(或组件)中,您将定义以下内容

actions: {
    onSubmitAction() {
        // Do something
    }
}