如何只更新Mongoose更改的作用域值

How To Only Update Scope Values That Have Changed With Mongoose

本文关键字:作用域 Mongoose 更新      更新时间:2023-09-26

我正在更新一个保存应用程序设置的大对象,以触发每个输入进行保存,我正在使用ng模糊和ng更改的组合:

ng-model-options="{updateOn:'blur'}", ng-change='updateContent();'

我能够用Mongoose通过类似"setting.update"的服务来更新对象的部分

$scope.updateContent = function() {
    setting.update({id:$scope.settings._id}, {
        name: $scope.settings.name,
        tag: $scope.settings.tag,
        hours: $scope.settings.hours,
        address: $scope.settings.address,             
        phone: $scope.settings.phone,
        email: $scope.settings.email
    });
};

因为整个对象相当大,我怎么能只更新控制器中更改的值呢。等于:

$scope.updateContent = function() {
    setting.update({id:$scope.settings._id}, {
        name: $scope.settings.name
    });
};

不重复上面的函数三十次?当更新大约10个base64图像时,我还需要重复这个模式。

感谢

看起来没有办法有效地将这些信息传递到函数中。。。因此,我将使用一个函数来处理每个输入,将其单独的值保存到MongoDB中。

$scope.updateContent = function() {
    setting.update({id:$scope.settings._id}, {
        name: $scope.settings.name
    });
};