我已经检查过但找不到任何与我正在寻找的问题完全相同的问题 - 我有一个转发器在一个月内每天显示一个时钟和&时差。有时这些时间需要编辑,我希望功能在手动输入/输出时触发ng-change,调用计算基本/加班时间的Web服务并更新日期总数。
我有以下代码
<td class="Cell" ng-repeat="DT in Timesheet.DayTimesheets">
<input type="text" ng-model="DT.ManualIn" class="DateInput" ng-blur="Changed(DT);"/>
<input type="text" ng-model="DT.ManualOut" class="DateInput" ng-blur="Changed(DT);" />
<input number-format type="text" ng-model="DT.TotalStdHoursManual" class="NumberInput" decimals="2" ng-show="Timesheet.EMP.PatternID != null" />
<input number-format type="text" ng-model="DT.TotalOverTimeHoursManual" class="NumberInput" decimals="2" />
</td>
Angular -
$scope.Changed = function (DT) {
var GetRequest = $http.post("@Url.Action("CalculateDayTimesheet", "HOME")", { DT: DT })
.then(function (response) {
DT = response.data;
// I want the DT.TotalStdHoursManual updated in the repeater
// This is not ng-model in above html
// DT.TotalStdHoursManual = 1; // Even this doesn't work
}, function (error) {
ShowError(error);
});
};
上述Angular中的更新DT未反映在转发器中的ng-model中。
答案 0 :(得分:0)
将对象引用分配给另一个对象不会修改对象本身:
var obj1 = {a:1};
var assign = obj1;
var obj2 = {a:2};
var assign = obj2;
console.log(obj1.a); // 1
要更新原始对象而不是仅更改引用,请使用angular.copy
angular.copy(response.data, DT);