我有以下地图
路线图
App.Router.map(function () {
this.resource('index', {path: "/"}, function () {
this.resource('project', {path: "/project/:id"}, function () {
this.resource('settings');
});
});
});
正在加载模型
我使用Ember Data加载模型:
App.IndexRoute = Ember.Route.extend({
model: function () {
return this.store.find('project');
}
});
App.Project = DS.Model.extend({
name: DS.attr("string"),
display_name: DS.attr('string')
});
App.ProjectRoute = Ember.Route.extend({
model: function (params) {
return this.store.find('project', params.id)
}
});
App.Settings = DS.Model.extend({
category: DS.attr(),
/* bunch of properties */
project: DS.belongsTo('project')
});
App.SettingsRoute = Ember.Route.extend({
model: function (params) {
return this.store.find('settings', params.id);
}
});
模板
让我们说项目有以下模板:
<script type="text/x-handlebars" id="project">
<div class="sidebar">
{{#link-to 'settings' id}}Settings{{/link-to}}
</div>
<div class="editor">
{{outlet}}
</div>
</script>
SettingsRoute中模型函数的params参数始终为空。 params.id
中的return this.store.find('settings', params.id);
为undefined
。我做错了什么?
修改
我的问题是,我使用了“设置”这个词来设置&#39;和ember假设设置不是单例。我认为这些类型的假设在框架中非常不寻常,Ember应该强迫开发人员处理这个问题。