首页 > 解决方案 > Ember-models-table 插件在尝试使用“routeName”属性时抛出 ember 警告错误

问题描述

我正在使用 ember-models-table 在我的应用程序中显示表格。该表非常适合排序、分页等,但我试图根据 id 从特定行路由到不同页面。它在其示例中提到使用'routeName'但是当我使用它时会引发以下错误:

“断言失败:调用warn时必须提供options哈希作为第三个参数。 options应该包含一个id属性。”

我的 .js 编码:

columns:[   
        {
          "propertyName": "firstName",
          "title":"First Name",
          "routeName":"/#/profile/_id"
},

等等

谢谢你的帮助。

更新:将 ember 更新到 ember 3.1.2 后错误消失了,但是有一个警告并且它没有按预期正常运行,我哪里出错了?

我的代码:

columns:[   
        {
          "propertyName": "firstName",
          "title":"First Name",
          "routeName":"profile"
}, 

标签: ember.jsember-addon

解决方案


如果您查看此插件的示例应用程序,您将看到以下路由语法:

{
    propertyName: 'id',
    routeName: 'users.user'
},

这大致对应于类似的路线users/1。所以,如果这是你的路由器:

Router.map(function() {
  this.route('users', function() {
    this.route('user', { path: '/users/:user_id' });
  });
});

这里是列:

columns: [
        {
            "propertyName": "something",
            "routeName": "users.user"
        },
        {
            "propertyName": "id",
            "routeName": "users.user"
        }
    ]

这是模板:

{{models-table 
data=model 
columns=columns
...
}}

routeName不应包括 id 段。

将鼠标悬停在创建的锚标记上以查看它通向的位置,并进行调整,直到它与应该去的位置匹配。只有当有有效的链接路由时才会呈现。路径看起来可能是相对的,所以如果您已经在users路线上,您可能只需要userrouteName.

我通过在插件代码库中搜索routeName然后使用与{{link-to}}帮助程序在 Ember 中使用的相同格式进行尝试来解决这个问题。

PS这是文档中缺少的一些信息,所以如果这个插件可以帮助你,请考虑制作一个 PR 来帮助其他人。


推荐阅读