Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态路由中的空数组模型_Javascript_Ember.js_Url Routing - Fatal编程技术网

Javascript 动态路由中的空数组模型

Javascript 动态路由中的空数组模型,javascript,ember.js,url-routing,Javascript,Ember.js,Url Routing,当转换到以空数组作为模型的动态路由时,似乎余烬将其关联为未定义 因此,如果这是模板: {{#linkTo dynamic arrayProxy}}link{{/linkTo}} 这是路线定义: DynamicRoute = Ember.Route.create(function() { model: function(params) { return this.modelFor("parent").find(params.name); }, serialize: func


当转换到以空数组作为模型的动态路由时,似乎余烬将其关联为
未定义

因此,如果这是模板:

{{#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(内容:[])
时, 点击链接后:
当然,模型钩子不会被调用
不管ArrayProxy是一个具有自己属性的有效成员对象,serialize钩子都将作为
模型获得
未定义的


有人知道如何强制ember处理空数组而不是
未定义的数组吗?

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

model: function(params) {
  return this.modelFor("parent").find(params.name);
},
如果没有此选项,
序列化
将始终接收未定义的
作为模型变量

序列化也需要返回:

serialize: function(model) {
  return { name: model.get("name"); }
}

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

{{#if arrayProxy}}
  {{#linkTo dynamic arrayProxy}}link{{/linkTo}}
{{else}}      
  {{#linkTo dynamic}}link{{/linkTo}}
{{/if}}
由于
arrayProxy
是空的arrayProxy,因此调用
else
部分并呈现第二个链接

因此,
DynamicRoute
serialize
hook将
未定义
作为
模型
参数。

你说得对,对不起,我的问题中显然混合了一些咖啡脚本…:-)不幸的是,这不是问题所在。我认为您需要显示更多的代码。。。您是否有一个名为
ParentRoute
的路由?模板的
arrayProxy
属性在哪里定义?你的余烬版本是什么?我使用的是余烬1.0.0。在呈现模板后立即调用serialize钩子以推断链接到的href。无论如何都不会调用模型钩子,因此ParentRoute不是问题的一部分。您必须使用链接显示与模板相关的代码。