当转换为使用空数组作为模型的动态路径时,Ember似乎将其与undefined
相关联。
因此,如果这是模板:
{{#linkTo dynamic arrayProxy}}link{{/linkTo}}
这是路线定义:
DynamicRoute = Ember.Route.create(function() {
model: function(params) {
return this.modelFor("parent").find(params.name);
},
serialize: function(model) {
return { name: model.get("name") };
}
});
当arrayProxy
为[]
或Ember.ArrayProxy.create(content: [])
时,
点击链接后:
当然,模型钩子不会被调用。
serialize钩子将undefined
作为model
,无论ArrayProxy是一个有自己属性的有效Ember对象。
是否有人知道如何强制执行ember处理空数组与undefined
不同?
答案 0 :(得分:0)
不确定是否是拼写错误,但您错过了模型钩子中的返回:
model: function(params) {
return this.modelFor("parent").find(params.name);
},
如果没有这个,serialize
将始终收到undefined
作为模型变量。
Serialize也需要返回:
serialize: function(model) {
return { name: model.get("name"); }
}
答案 1 :(得分:0)
这是我的错......
显然,该链接嵌套在以下if
块下的模板中:
{{#if arrayProxy}}
{{#linkTo dynamic arrayProxy}}link{{/linkTo}}
{{else}}
{{#linkTo dynamic}}link{{/linkTo}}
{{/if}}
由于arrayProxy
是一个空的ArrayProxy,因此调用else
部分并呈现第二个linkTo。
因此,DynamicRoute
' serialize
个钩子将undefined
作为model
参数。