EmberJS嵌套的资源模板不起作用

EmberJS Nested resource templates not working

本文关键字:不起作用 资源 嵌套 EmberJS      更新时间:2023-09-26

我有一个Ember应用程序,它没有为嵌套资源的路由加载模板。我很确定我遗漏了一些非常明显的东西,但我不知道问题是什么。

每当我去http://localhost:4200/dashboard/appointments/new时,我都会得到一张空白页。

这是我的router.js文件:

import Ember from 'ember';
import config from './config/environment';
var Router = Ember.Router.extend({
  location: config.locationType
});
Router.map(function() {
  this.route('signup', { path: '/register' });
  this.route('login', { path: '/login' });
  this.route('logout', { path: '/logout' });
  this.resource('user', { path: '/dashboard' }, function() {
    this.resource('appointment', { path: '/appointments' }, function() {
      this.route('new', { path: '/new' });
    });
    this.resource('item', { path: '/items' }, function() {});
  });
});
export default Router;

这是我的目录结构:

|__app.js
|__controllers
| |__login.js
|__router.js
|__routes
| |__application.js
| |__login.js
| |__logout.js
| |__signup.js
| |__user
| | |__appointment
| | | |__new.js
| | |__appointment.js
| | |__item.js
| |__user.js
|__templates
| |__application.hbs
| |__components
| |__login.hbs
| |__logout.hbs
| |__partials
| |__signup.hbs
| |__user
| | |__appointment
| | | |__new.hbs
| | |__appointment.hbs
| | |__item.hbs
| |__user.hbs

我确保(在templates目录中),我的user.hbs文件和user/appointment.hbs文件都有{{outlet}}。我检查了控制台,URL工作正常(没有URLNotFound错误)。唯一的问题是我在templates/user/appointment/new中的模板没有被加载。现在所有其他模板都是空的,其中包含{{outlet}}

有什么想法吗?真的很感谢你的帮助!

考虑到您当前的路由结构,您需要新的约会模板位于templates/appointment/new

JSBin

另一种自行调试的方法是使用Ember Inspector插件。转到您试图找出的URL,转到检查器的"路线"部分,选中该框以将您看到的内容限制为当前路线,然后在模板列下查看它要查找的模板。在您的案例中,它表示正在appointment/new中查找模板。