Javascript AngularJS:在put过程中使用旧值而不是新值

Javascript AngularJS:在put过程中使用旧值而不是新值,javascript,angularjs,Javascript,Angularjs,更新时,我希望插入来自ui的新值,而不是本地集合中的旧值。下面的代码在本地集合中插入旧值(我不希望发生这种情况) 这是我的Html <div> <label for="City">City</label> <input name="City" type="text" data-ng-model="updateSupplier.city" value="{{supplier.city}}" /> </div> 城市

更新时,我希望插入来自ui的新值,而不是本地集合中的旧值。下面的代码在本地集合中插入旧值(我不希望发生这种情况)

这是我的Html

<div>
    <label for="City">City</label>
    <input name="City" type="text" data-ng-model="updateSupplier.city" value="{{supplier.city}}" />
</div>

城市

我该怎么做?如何更新范围以获取新值?我是angular的新手。

如果您将
更新供应商
绑定为
ng型号
,则保存时不应覆盖这些值:

$scope.save = function () {

    // remove the line that overwrites, was here    

    dataService.updateSupplier($routeParams.id, $scope.updatedSupplier)
        .then(function () {
            //success
        },
        function () {
            //error
        });
    };
}
Angular将负责双向绑定
ng模型中的值
,因此在保存时,它将具有文本框中输入的正确值

您还可以通过不具有2个不同的作用域属性来清理代码:

dataService.getSupplierById($routeParams.id)
.then(function (supplier) {
    $scope.supplier = supplier; //now this contains local collection

    $scope.save = function () {

        dataService.updateSupplier($routeParams.id, $scope.supplier )
        .then(function () {
            //success

        },
            function () {
                //error

            });
    };
},
function () {
    //error
});
然后在html中:

<div>
    <label for="City">City</label>
    <input name="City" type="text" data-ng-model="supplier.city" />
</div>

城市

初始值应自动绑定到
属性中。

不清楚您在问什么:(您正在尝试获取新值吗?我想从ui获取新值。但是如何将这些新值添加到我的范围中?
<div>
    <label for="City">City</label>
    <input name="City" type="text" data-ng-model="supplier.city" />
</div>