reangular——增加和更新一个值

Restangular - Incrementing and updating a value

本文关键字:一个 增加 更新 reangular      更新时间:2023-09-26

我使用的是带有MEAN栈的Restangular,我的api运行在localhost:3000上。

我想在每次加载页面时增加'views'。目前我正在获取对象并将其设置为1000这样的值,这工作得很好,但当我试图增加它时,它不起作用。

angular.module('clientApp').controller('MovieViewCtrl', function ($scope, $routeParams, Movie) {
    $scope.$on('$viewContentLoaded', function() {
        var passReq = Movie.one($routeParams.id);
        passReq.views = 1000;
        passReq.put();
    });
    $scope.viewMovie = true;
    $scope.movie = Movie.one($routeParams.id).get().$object;
});

^^ This works

angular.module('clientApp').controller('MovieViewCtrl', function ($scope, $routeParams, Movie) {
    $scope.$on('$viewContentLoaded', function() {
        var passReq = Movie.one($routeParams.id);
        passReq.views++;
        passReq.put();
    });
    $scope.viewMovie = true;
    $scope.movie = Movie.one($routeParams.id).get().$object;
});

但是这不是

可能是因为passReq.views没有定义,所以你不能增加一个未定义的变量,这样做:

angular.module('clientApp').controller('MovieViewCtrl', function ($scope, $routeParams, Movie) {
    $scope.$on('$viewContentLoaded', function() {
        var passReq = Movie.one($routeParams.id);
        if (passReq.views)        
           passReq.views++;
        else
           passReq.views = 1;
        passReq.put();
    });
    $scope.viewMovie = true;
    $scope.movie = Movie.one($routeParams.id).get().$object;
});

有时MEAN不能处理递增运算符我所面临的。所以你可以试试

if(passReq.views)
    passReq.views += 1;