2017-09-06 10 views
0

非常に混乱していて、私が正しく考えているかどうかはわかりません。これが意味をなさせるために他に何が必要なのか教えてください...同じURLのAngularJSルートを使用するには、別のコントローラ機能が必要ですか?

私はマングースで2つの異なる機能を持っています。 1つはすべてのリストを索引付けし、他のインデックスは一意のユーザーリストを索引し、私のmongoose関数でフィルタリングされます。しかし、私のルートでは、$ httpのURLが同じなら、私のプロフィールページで一意の関数にどのようにヒットしますか?

//From server.js to controllers 
app.get('/api/listings', controllers.listings.index); 

//all listings shown on home page 
function index (req, res) { 
    db.Listing.find({}, function(err, allListings) { 
    res.json(allListings); 
    }); 
} 

//From server.js to controllers 
app.get('/api/listings/', auth.ensureAuthenticated, controllers.profiles.indexUnique); 

//unique function that I want to show on profile page only 
function indexUnique(req, res) { 
    db.User.findById(req.user, function (err, user) { 
    if (err) {console.log(err);} 
    db.Listing.find({uid: req.user}, function(err, listings) { 
     if(err) { console.log('Error', err); } 
     res.json(listings); 
    }); 
    }) 
} 

どのように私は、URLのルートが同じであれば、私のユニークな機能を打つために私のhttpリクエストを調整するのですか?

// Angular http request in my home controller 
    $http({ 
    method: 'GET', 
    url: '/api/listings' 
    }).then(function successCallback(response) { 
    vm.listings = response.data; 
    }, function errorCallback(response) { 
    console.log('Error getting data', response); 
    }); 
+0

私はあなたのためのパラメータを使用することをお勧めします2つの別々の配列を保つことができるユニークな1すなわち /API /リスト/:listingId。次に、パラメータlistingIdを使用してリクエストを送信できます。これは安らかな方法であり、理解しやすい。なぜあなたは同じURLを使いたいのか理解できませんでした。 –

+0

このライブラリを使用することもできます。これは意味のある方法でapisを消費するのに非常に便利です:https://github.com/mgonto/restangular –

答えて

0

あなたはサービスとしての角度でフィルタリングを行うと、オブジェクト

関連する問題