以下是我的路线定义:
continue
用于生成Router.map(function() {
this.resource('servers', { path: '/' }, function() {
this.resource('server', { path: '/servers/:serverid'}, function () {
this.resource('databases', { path: '/databases' }, function () {
this.resource('database', { path: '/:databaseid'}, function () {
this.resource('catalogues', { path: '/catalogues' });
this.resource('eventtriggers', { path: '/eventtriggers' });
this.resource('extensions', { path: '/extensions' });
this.resource('schemas', { path: '/schemas' }, function () {
this.resource('schema', { path: '/:schemaid' }, function () {
this.resource('tables', { path: '/tables' }, function () {
this.route('new-table', function () {});
this.resource('table', { path: '/:tableid' });
});
});
});
this.resource('replication', { path: '/replication' });
});
});
});
});
});
路由链接的代码如下:
new-table
这给了我这个问题主题中提到的错误。但是当我将{{#link-to 'new-table' schema.database.server.id schema.database.id schema.id}}
调用替换为this.route
时,一切正常。那么我在这里做错了什么?我正在使用ember 1.13.2。
答案 0 :(得分:1)
资源定义链接到的主要入口点。因此,如果您创建资源new-table
,则可以通过new-table
帮助中的link-to
访问该资源。另一方面,路由是资源或其他路由的子路径,它们应该以其父路由或资源为前缀。因此,在您提供的示例中,您可以使用new-table
链接到tables.new-table
路线。