【问题标题】:How to pass multi parameters from controller to resource如何将多个参数从控制器传递到资源
【发布时间】:2016-08-22 16:38:16
【问题描述】:

在我的控制器中

 API.logInCheck().get({ nid: $scope.username, pwd: $scope.password, comname: $scope.comtyname }).$promise.then(function(response) {
            $rootScope.popup('success', JSON.stringify(response));
        }, function(err) {
            $rootScope.popup('err', JSON.stringify(err));
        });

为我服务

 return $resource(base + '/user/:nid/:pwd/:comname', { nid: 'nid', pwd: 'pwd', comname: 'comname' });

在我的服务器上

router.route('/user/:nid/:pwd/:comname')
.get(function(req, res) {
Community.findOne({ community_name: req.params.comname }, function(err, commu) {
    if (err)
        res.json(err);
    else {

        User.findOne({ username: req.params.nid, password: req.params.pwd, comty_id: commu._id }, function(err, user) {
            if (err)
                res.json(err);
                res.json(user);
        });

    }
});

但它返回一个数组! 我希望网址是

/user/123/123456/text

怎么样?

【问题讨论】:

    标签: angularjs node.js ionic-framework


    【解决方案1】:

    你必须在 $ressouce 中使用@:

    return $resource(base + '/user/:nid/:pwd/:comname', { nid: '@nid', pwd: '@pwd', comname: '@comname' });
    

    您的来电:

    API.logInCheck().query({ nid: $scope.username, pwd: $scope.password, comname: $scope.comtyname }).$promise.then(function(response) {
                $rootScope.popup('success', JSON.stringify(response));
            }, function(err) {
                $rootScope.popup('err', JSON.stringify(err));
            });
    

    【讨论】:

    • 这样的url看起来像这样“/user?nid=123&&pwd=123456&&comname=text”
    • 现在应该使用查询。如果你想使用 get,你必须在你的 $ressource 中重写它。
    • 我不想将参数作为查询字符串传递,而是作为 req.params 传递
    猜你喜欢
    • 2014-01-11
    • 2021-10-06
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 2016-05-27
    • 2016-08-14
    相关资源
    最近更新 更多