2015-10-08 2 views
1

Я новичок в AngularJS, это похоже на простую вещь, но я борюсь с ней.Угловой JS многомерный JSON

У меня есть следующий ответ JSON, и я просто хочу вывести часть его на страницу.

Для названия я не могу использовать post.title.rendered Я думаю, потому что пост - это отдельный объект? Есть ли другой способ вывода заголовка?

Спасибо за помощь!

{ 
 
    "post":[ 
 
     { 
 
     "id":14, 
 
     "date":"2015-10-08T12:34:37", 
 
     "guid":{ 
 
      "rendered":"http://localhost:8888/tf-stories-wp/?p=14" 
 
     }, 
 
     "modified":"2015-10-08T13:13:56", 
 
     "modified_gmt":"2015-10-08T12:13:56", 
 
     "slug":"story", 
 
     "type":"post", 
 
     "link":"http://localhost:8888/tf-stories-wp/2015/10/08/story/", 
 
     "title":{ 
 
      "rendered":"Story" 
 
     }, 
 
     "content":{ 
 
      "rendered":"<p>Goooooooooods</p>\n" 
 
     }, 
 
     "excerpt":{ 
 
      "rendered":"<p>Goooooooooods</p>\n" 
 
     }, 
 
     "author":1, 
 
     "featured_image":0, 
 
     "comment_status":"open", 
 
     "ping_status":"open", 
 
     "sticky":false, 
 
     "format":"standard", 
 
     "_tf-stories_demo":[ 
 
      { 
 
       "page_text":"Test page content", 
 
       "page_image_id":0, 
 
       "page_image":false 
 
      }, 
 
      { 
 
       "page_text":"Test page content 2" 
 
      } 
 
     ], 
 
     "_links":{ 
 
      "self":[ 
 
       { 
 
        "href":"http://localhost:8888/tf-stories-wp/wp-json/wp/v2/posts/14" 
 
       } 
 
      ], 
 
      "collection":[ 
 
       { 
 
        "href":"http://localhost:8888/tf-stories-wp/wp-json/wp/v2/posts" 
 
       } 
 
      ], 
 
      "author":[ 
 
       { 
 
        "embeddable":true, 
 
        "href":"http://localhost:8888/tf-stories-wp/wp-json/wp/v2/users/1" 
 
       } 
 
      ], 
 
      "replies":[ 
 
       { 
 
        "embeddable":true, 
 
        "href":"http://localhost:8888/tf-stories-wp/wp-json/wp/v2/comments?post_id=14" 
 
       } 
 
      ], 
 
      "version-history":[ 
 
       { 
 
        "href":"http://localhost:8888/tf-stories-wp/wp-json/wp/v2/posts/14/revisions" 
 
       } 
 
      ], 
 
      "http://v2.wp-api.org/attachment":[ 
 
       { 
 
        "embeddable":true, 
 
        "href":"http://localhost:8888/tf-stories-wp/wp-json/wp/v2/media?post_parent=14" 
 
       } 
 
      ], 
 
      "http://v2.wp-api.org/term":[ 
 
       { 
 
        "taxonomy":"category", 
 
        "embeddable":true, 
 
        "href":"http://localhost:8888/tf-stories-wp/wp-json/wp/v2/posts/14/terms/category" 
 
       }, 
 
       { 
 
        "taxonomy":"post_tag", 
 
        "embeddable":true, 
 
        "href":"http://localhost:8888/tf-stories-wp/wp-json/wp/v2/posts/14/terms/tag" 
 
       }, 
 
       { 
 
        "taxonomy":"post_format", 
 
        "embeddable":true, 
 
        "href":"http://localhost:8888/tf-stories-wp/wp-json/wp/v2/posts/14/terms/post_format" 
 
       } 
 
      ], 
 
      "http://v2.wp-api.org/meta":[ 
 
       { 
 
        "embeddable":true, 
 
        "href":"http://localhost:8888/tf-stories-wp/wp-json/wp/v2/posts/14/meta" 
 
       } 
 
      ] 
 
     } 
 
     } 
 
    ] 
 
}

ответ

2

использование пост [0] .title.rendered вместо post.title. оказываемых потому, что пост - это массив

+1

Ahh да, я знал, что это будет что-то очевидное! Спасибо. – user3429445

+0

Добро пожаловать! –

2

post фактически является массивом, и title является объектом единственного объекта в этом массиве.
Лучшее представление (я думаю, учитывая текущие данные) было бы сделать post объектом вместо массива (так что потеряйте [ ]).

Для текущей ситуации, это должно работать:

var title = json_object['post'][0]['title']['rendered']; 

или (то же самое, разные обозначения)

var title = json_object.post[0].title.rendered; 
2

Вы можете сделать:

<div ng-repeat='post in posts'> 
    id: {{post[0].id}}<br/> 
    address: {{post[0].guid.rendered}} 
</div> 

и так далее.

взглянуть на эту plunkr

надеюсь, что это помогает.

+2

Спасибо, я пробовал это, но синтаксис был немного неправильным. Вы очистили это для меня. – user3429445

Смежные вопросы