2016-12-17 8 views
0

HAL形式でHATEOAS linkrelsを使用するライブラリがいくつかありますが、_embeddedリソースとその_linksをアクセスする方法の詳細については、基本的 - あるいは私は素朴な言い方をするべきだと思います。 。。JavaScript/AngularJSを使用して_embeddedリソース内のHAL _linksにアクセスする方法

{ 
    "_embedded":{ 
     "userList":[ 
     { 
      "username":"admin", 
      "roles":[ 
       "ADMIN" 
      ], 
      "_links":{ 
       "self":{ 
        "href":"http://localhost:8081/users/admin" 
       }, 
       "password":{ 
        "href":"http://localhost:8081/users/admin/password" 
       }, 
       "delete":{ 
        "href":"http://localhost:8081/users/admin" 
       } 
      } 
     } 
     ] 
    }, 

    "_links":{ 
     "self":{ 
     "href":"http://localhost:8081/users" 
     }, 
     "create":{ 
     "href":"http://localhost:8081/users" 
     } 
    } 
} 

私はusersResource $ hasEmbedded( "ユーザーリスト")またはusersResourceのような単純な何かを実行した場合は$ hasLink:

例として、私は次の "usersResource"($ HTTP)春HATEOAS出力を持っています(「作成する」)、私は問題なく真実になります。

私はusersResourceのようなもっと冒険してみてください。$ request()。$ get( "userList")私はリソースオブジェクトを取得しますが、私は意味のある方法でそのオブジェクトを使用するのに苦労しています。

たとえば、管理者ユーザーの「パスワード」リンクが存在するかどうかを確認するには、返されたリソースオブジェクトを使用して$ hasLinkを呼び出す方法がありますか?

コメントありがとうございます!

答えて

0

とにかく、私は後で、usersResource。$ request()。$ get( "userList")呼び出しによって返されたオブジェクトが配列であることに気付きました。ですから、$ hasLinkメソッドに到達するために配列をループするだけです。私の場合は、最初の[index 0]オブジェクトに移動するだけでした。これはトリックでした:

usersResource.$request().$get("userList") 
      .then(function (users) { 

       vm.users = users; 

       console.log("$hasLink 'delete'"); 
       console.log(users[0].$hasLink("delete")); //return true 

       } 
      ); 
関連する問題