我正处于以下中间: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
时,它会向我显示fullNames的列表,但不会向我显示锚链接。 我在Chrome浏览器控制台中看到的另一件事是:
错误消息:断言失败:找不到型号名称
通过阅读一些教程,我理解您可以将mixins作为向控制器或视图中注入其他属性的一种方式。例如,您可以这样做:
Ember.View.extend(App.Editable)
但是你可以将mixin加入模型吗?你可以这样做:
App.Lead = DS.Model.extend(App.SomeMixin)
答案 0 :(得分:0)
这是为Ember 1.12工作的jsbin jsbin.com/mezakepemu/1/edit?html,js,console 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)是的,mixins可以包含在模型和每个Ember.Object中。