我有一个路由为#/ 0,#/ 1,#/ 2这加载相应的模板时单击用户名称。 但是当我点击用户名下面的错误被抛出,Ember.js动态路由器不加载模板使用序列化
Error while loading route: TypeError: Object # has no method 'addArrayObserver'
但是,当我直接访问该网址本地主机:8080/dynam.html#/ 0,我得到的输出,
25
模板:
<script type="text/x-handlebars" data-template-name="application">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="index">
<h2>Names</h2>
<ul>
{{#each model}}
<li>{{#linkTo "test" this}}{{this.firstName}} {{this.lastName}}{{/linkTo}}</li>
{{/each}}
</ul>
</script>
<script type="text/x-handlebars" data-template-name="test">
<h2>Item Loaded</h2>
{{#each model}}
<li>{{#linkTo "test" this}} {{Age}} {{/linkTo}}</li>
{{/each}}
</script>
App.js:
App = Ember.Application.create({}); App.Router.map(function() { this.route('test', {path: '/:id'}); }); App.IndexRoute = Ember.Route.extend({ model: function(id){ return [ {id: 0, firstName: 'Kris', lastName: 'Selden'}, {id: 1, firstName: 'Luke', lastName: 'Melia'}, {id: 2, firstName: 'Formerly Alex', lastName: 'Matchneer'} ]; }, serialize: function(model) { return {id: model.id}; } }); App.TestRoute = Ember.Route.extend({ model: function(){ return App.TestObj.getArray(); } }); App.TestObj = Ember.Object.extend(); App.TestObj.reopenClass({ testArr : [ {Age: '26' } ], test1Arr : [], getArray : function(){ this.testArr.forEach(function(obj){ this.test1Arr.pushObject(App.TestObj.create(obj)); }, this); return this.test1Arr; } })
感谢您的回复。我应该在哪里使用返回“someFunction(id)”的模型,在IndexRoute或TestRoute中,我的模型的结构应该是什么。 – Jeevi
你的模型结构应该是任何必要的。没有黄金标准,它只是您需要的相关信息的倾销地。 – gravityplanx