1


当转换到以空数组作为模型的动态路由时,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") };
  }
});

whenarrayProxy[]or Ember.ArrayProxy.create(content: []),点击链接后:
模型钩子当然不会被调用。不管 ArrayProxy 是一个具有自己属性的有效 Ember 对象,
serialize 钩子都会得到undefinedmodel

有谁知道如何强制 ember 以不同的方式处理空数组undefined

4

2 回答 2

0

不确定是否是拼写错误,但您缺少模型挂钩中的返回:

model: function(params) {
  return this.modelFor("parent").find(params.name);
},

没有这个,serialize总是会收到一个undefined模型变量。

序列化也需要返回:

serialize: function(model) {
  return { name: model.get("name"); }
}
于 2013-10-02T18:14:32.143 回答
0

这是我的错误......
显然,该链接嵌套在以下if块下的模板中:

{{#if arrayProxy}}
  {{#linkTo dynamic arrayProxy}}link{{/linkTo}}
{{else}}      
  {{#linkTo dynamic}}link{{/linkTo}}
{{/if}}

由于arrayProxy是一个空的 ArrayProxy,因此else调用该部分并呈现第二个 linkTo。
因此,DynamicRouteserialize钩子undefined作为model论据。

于 2013-10-07T22:12:36.033 回答