我的问题是子对象。 让我们举个例子:
tweets = [{id:1, title:"my tweet", author:{id:"sample", name:"Sample Guy"}}] ;
...等 现在,如果我想使用express和jade保存,我会创建一个表单并设置类似于此的输入:
input#title(type="text", name="tweet[title]", value="new tweet")
没有问题,但我如何设置作者的ID /名称?我的猜测没有用..
input#author(type="text", name="tweet[author[id]]", value="sample")
在我提交put之后尝试console.log('author '+tweet.author.id) ;
时,只返回undefined。
提前感谢您的任何帮助,
答案 0 :(得分:3)
引用对象的对象将是
tweet[author][id]
答案 1 :(得分:0)
每对括号都是深度水平。除了命名键,您还可以使用数字或空括号,这对无限字段很有用。
以下布局
input(type="hidden", name="some_field", value="some value")
input(type="hidden", name="tweet[id]", value="tweet id")
input(type="text", name="tweet[author][id]", value="author id")
input(type="text", name="tweet[author][name]", value="author name")
input(type="text", name="numbers[2]", value="2 value")
input(type="text", name="numbers[1]", value="1 value")
input(type="text", name="numbers[0]", value="0 value")
input(type="text", name="more_numbers[]", value="first")
input(type="text", name="more_numbers[]", value="second")
input(type="text", name="more_numbers[]", value="third")
将在提交后生成
{
some_field: "some value",
tweet: {
id: "tweet id",
author: {
id: "author id",
name: "author name"
}
},
numbers: ["0 value", "1 value", "2 value"],
more_numbers: ["first", "second", "third"]
}
正如@Pastor Bones所说,你必须使用
tweet[author][id]