質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Q&A

3回答

3335閲覧

AngularJSでJSONデータから1件を取得したい

ukotsu

総合スコア15

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

0グッド

0クリップ

投稿2017/05/10 11:07

angular-resourceを使用して、外部のjsonファイルを読み込んでいます。(ブログの記事一覧のような画面です。)
下記のコードで全件を表示することはできたのですが、たとえば2番目(id:2)だけを取り出して表示させるにはどのようにすればよいのでしょうか。

「this.articles = contents.query([1]);」のようなことができれば良いと思うのですが…。
どうぞよろしくお願い致します。

javascript

1angular.module('app', ['ngResource']) 2.controller('articlesController', ['$resource', function ($resource) { 3 var contents = $resource("../data.json"); 4 this.articles = contents.query(); 5}]);

json

1[ 2 { 3 "id": 1, 4 "date": "2015/05/01", 5 "title": "タイトル1" 6 }, 7 { 8 "id": 2, 9 "date": "2015/05/02", 10 "title": "タイトル2" 11 }, 12 { 13 "id": 3, 14 "date": "2015/05/03", 15 "title": "タイトル3" 16 } 17]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ngResourceは非同期なので、結果が戻ってくるまでに時間があります。
結果を確定するにはコールバックかpromiseを使います。

コールバックの例

javascipt

1contents.query(function(articles) { 2 this.article = articles[1]; 3});

promiseの例

javascipt

1var articles = contents.query(); 2articles.$promise.then(function() { 3 this.article = articles[1]; 4});

環境がないので検証していません。エラーが出たら適宜直してください。

投稿2017/05/11 01:22

naga3

総合スコア1293

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

filterとかどうでしょう

サンプルURL

javascript

1 contents.query().$promise.then(function(data){ 2 $scope.filterArticles = $filter("filter")(data, {id: 2}); 3 });

投稿2017/05/11 00:57

pinpikokun

総合スコア376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

this.articles = contents.query()[1]; ```; ではどうですか?

投稿2017/05/10 11:09

編集2017/05/10 11:10
h_daido

総合スコア824

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ukotsu

2017/05/11 01:03

ご回答ありがとうございます。 残念ながら[undefined]が返ってきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問