Node> express> jade - формирует шаблонные дочерние объекты - PullRequest
0 голосов
/ 01 декабря 2011

У меня вопрос к подобъектам.давайте теперь получим следующий пример:

tweets = [{id:1, title:"my tweet", author:{id:"sample", name:"Sample Guy"}}] ;

.. и т. д., если бы я хотел сохранить это с помощью экспресса и нефрита, я бы сделал форму и установил бы ввод, подобный этому:* нет проблем, но как мне установить идентификатор / имя автора?мои догадки не сработали ..

input#author(type="text", name="tweet[author[id]]", value="sample")

, который просто возвращает неопределенное значение, когда я пытаюсь console.log('author '+tweet.author.id) ; после отправки пут.

Заранее благодарен за любую помощь,

Ответы [ 2 ]

3 голосов
/ 01 декабря 2011

для ссылки на объект объекта будет

tweet[author][id]
0 голосов
/ 19 апреля 2013

Каждая пара скобок - это уровень по глубине. В дополнение к именованным ключам вы можете использовать числа или пустые скобки, которые полезны для бесконечных полей.

Следующий макет

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]
...