2014-09-19 38 views
1

您好,我需要通過角度來從MongoDB集合中查找/更新用戶。 我需要通過_id,並通過用戶名找到他們,所以我創造了這樣的服務:

// Users service used for communicating with the users REST endpoint 
angular.module('users').factory('Users', ['$resource', 
    function($resource) { 
     return $resource('users/:id', {}, { 
      update: { 
       method: 'PUT' 
      } 
     }); 
    } 
]); 

而且在表達我有親戚API路線:

app.route('/users/:userId').put(users.update); 

現在,假設我有像這樣的另一種快速路線來檢查用戶名可用性:

app.route('/users/:username').get(users.check); 

我怎樣才能將最後一個在同一個角度服務?

更新: 解決這個,是嗎?

angular.module('users').factory('Users', ['$resource', 
    function($resource) { 
     return { 
      byId: $resource('users/:id', {}, { 
       update: { 
        method: 'PUT' 
       } 
      }), 
      byUsername: $resource('users/:username', {}, { 
      }) 
     }; 
    } 
]); 
+0

你如何區分它在快遞方面,兩條路線看我也一樣。第二條路線是否始終用於檢查可用性。 – Chandermani 2014-09-19 12:02:17

回答

3

你想做這樣的事嗎?

角服務:

angular.module('users').factory('Users', function($resource) { 
var resource = $resource('users/:byAttr/:id', {}, { 
    update: { 
     method: 'PUT', 
     isArray: false, 
     cache: false 
    } 
}); 
return { 
    updateById: function (id) { 
     resource.update({id: id, byAttr: 'id'}); 
    }, 
    updateByName: function (username) { 
     resource.update({username: username, byAttr: 'username'}); 
    }, 
} 

});

路線:

app.route('/users/id/:userId').put(users.update); 
app.route('/users/user/:username').get(users.check); 
+0

是的,謝謝,這也很有用。 – 2014-09-22 06:17:25