2017-02-24 15 views
0

NodejsとAngularにRest APIを作成しました。私の角度のアプリでngresource新しいページでアイテムを開く

は、私が得た:nodejsで

app.factory('User', function($resource) { 
    return $resource('/api/users/:id', { id: '@_id' }); 
}); 


app.controller("myctrl", function($scope, $http, UserService, $location){ 
    $scope.users = User.query(); 
     $scope.getData = function(userID){ 
      $location.absUrl("/api/students/"+userID); 
     } 
    }); 

app.use('/api', require('./routes/api')); 

は、私はすべての必要な情報を一覧表示することができています。今私は、新しいページでユーザーを開いてもらいたい。私は、ユーザーがクリックしたときので、私が持っている:

EDIT:

<base href="/"> //in my html head 
<p><ng-click="getData(user.id)">username</p> 

を、ユーザー名をクリックすると、何も起こりません。コンソールログにもエラーはありません。

EDIT

$location.url("/api/students/"+userID);は、アドレスバーに適切な場所に置きますが、ページは同じままです。だから私は使用

$window.location.assign("/api/students/"+userID); 

私は$window.location.assignを使用する必要がありますか分かりません。これは機能し、私はすべての適切な詳細を取得します。唯一の問題は、そのすべてがJSONです。データを表示するにはどのように角度{{}}を使用しますか?また、その出力にカスタムhtmlを追加したいと思う。

ありがとうございました。

答えて

1

aタグでは、ターゲットの空白を使用できます。それに加えて$ locationを挿入するか、window.locationを使用して完全なパスを取得する必要がありますが、それ以外のリンクは機能しません。短い

だから、長い話:

var app = angular.module('plunker', []); 
 

 
app.controller('MainCtrl', function($scope, $location) { 
 
    
 
    $scope.userID = 10; 
 
    $scope.baseUrl = $location.protocol() + "://" + $location.host() + ":" + $location.port(); 
 
    
 
    $scope.fullUrl = $scope.baseUrl + '/api/students/' + $scope.userID; 
 
    
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="plunker"> 
 
    <div ng-controller="MainCtrl"> 
 
    <p>Hello!</p> 
 
    
 
    <a target="_blank" href="{{baseUrl + '/api/students/' + userID}}" >Go to new window</a> 
 
    <br/> 
 
    <a target="_blank" href="{{fullUrl}}" >Go to new window</a> 
 
    </div> 
 

 
</div>
そして、念のため plunker

+0

「GET/newpage/id = 58」できません。nodejsサーバーの 'newpage/id'にルートを追加するにはどうすればいいですか? – Somename

+0

申し訳ありませんが、ちょうどその部分の代わりに完全なURLを置く必要があることを忘れてしまいました。$ location.absUrl()を使用してください。 – Yaser

+0

これで私の頭を包み込むことができません。私に例を教えてください。私はその質問を編集した。チェックしてください。 – Somename

関連する問題