【问题标题】:EmberJS Error message: Assertion Failed: Cannot find model nameEmberJS 错误消息:断言失败:找不到模型名称
【发布时间】:2015-07-01 18:52:50
【问题描述】:

我处于以下状态:Vic Ramon EmberJS tutorial。我达到了尝试列出潜在客户并进行以下设置的地步:

适配器

App.Store = DS.Store.extend()
App.ApplicationAdapter = DS.ActiveModelAdapter.extend()

DS.RESTAdapter.reopen
  namespace: 'api/v1'

控制器

App.LeadsController = Ember.ArrayController.extend
  sortProperties: ['firstName', 'lastName']

型号

App.Lead = DS.Model.extend
  firstName:  DS.attr('string')
  lastName:   DS.attr('string')
  email:      DS.attr('string')
  phone:      DS.attr('string')
  status:     DS.attr('string', defaultValue: 'new')
  notes:      DS.attr('string')


  fullName: (->
    @get('firstName') + ' ' + @get('lastName')
  ).property('firstName', 'lastName')

路线

App.LeadsRoute = Ember.Route.extend

  model: ->
    @store.findAll 'lead'

路由器

App.Router.reopen
  location: 'auto'
  rootURL: '/'

App.Router.map ()->
  @resource 'leads', path: '/'
  @resource 'lead', path: 'leads/:id'

模板

<article>
    <h1>Leads</h1>
    <ul>
      {{#each lead in controller}}
        <li>{{#link-to 'lead' lead}}{{/link-to}}</li>
          {{lead.fullName}}
      {{/each}}
    </ul>
</article>

问题只是当我将浏览器重定向到http://localhost:3000 时,它会显示全名列表,但不会显示锚链接。 我似乎在我的 chrome 浏览器控制台中得到的另一件事是:

错误消息:断言失败:找不到模型名称

奖金问题

通过阅读几本书和教程,我了解到您可以包含混入作为将其他属性注入控制器或视图的一种方式。所以例如你可以这样做:

Ember.View.extend(App.Editable)

但是你可以在 模型 中包含一个 mixin 吗?你能做到吗:

App.Lead = DS.Model.extend(App.SomeMixin)

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    这是用于 Ember 1.12 jsbin.com/mezakepemu/1/edit?html,js,console 的工作 jsbin 1)链接。你可以试试

    <li>
      {{#link-to 'lead' lead}}
        {{lead.fullName}}
      {{/link-to}}
    </li>
    

    <li>{{link-to lead.fullName 'lead' lead}}</li>
    

    而在现代 Ember 版本中,最好编写

    {{#each lead in model}} ... {{/each}}
    

    {{#each model as |lead|}} ... {{/each}}
    

    2) 错误消息:断言失败:找不到模型名称 - 请显示引发此错误的代码。您的潜在客户路线、控制器和模板看起来很正常。

    3) 是的,mixin 可以包含在模型和每个 Ember.Object 中。

    【讨论】:

    • 所以尝试了你的初步建议{{link-to 'lead' lead}} {{lead.fullName}}... 这似乎没有输出任何东西。我确实尝试过:{{lead.length}},但没有返回任何内容:{{controller.length}} 返回 20(我拥有的记录数)。不完全确定为什么在执行{{lead.length}} 时不会输出长度
    • 你的 Ember 版本是什么?
    • Ember : 1.8.1 Ember Data : 1.13.4 Handlebars : 1.3.0 jQuery : 1.11.2 如果我使用的 ember 版本有问题,我可能会重新开始。或者有没有一种简单的方法可以升级ember版本而无需重新开始
    • 这里正在为 Ember 1.12 jsbin.com/mezakepemu/1/edit?html,js,console 工作的 jsbin 提供 1.8.1 对我来说太旧了。
    • 欣赏示例,我将尝试使用最新版本的 ember 重新开始我的项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多