我有一个多维数组被注入到我的视图范围中,其中包含学生的出勤数据。从本质上讲,它是反映许多记录的数字考勤表。我正在使用 angularjs 进行可以异步修改单个记录的 XHR 调用。
问题:一旦我修改了单个记录,例如:通过 ajax 将 A(不存在)更改为 P(存在),我想为该特定表格单元添加或删除 css 类。但是,指令在绑定时执行,并且我需要在通过 ajax 修改记录后执行它,在数据绑定很久之后。
这在控制器中使用 jQuery 很容易实现,就在 PUT 调用成功函数中。但这不是修改 dom 的“角度方式”。但是,从我所读到的显然,在绑定后修改 DOM 也是不好的做法。当然,有一种方法可以用 angular 来“正确”地做到这一点……我希望你们能增加一些清晰度。非常感谢的想法。
这是控制器中的 PUT 调用,它在 PUT 完成后通过并适当地修改范围,然后使用我在更改单元格之前提到的 jQuery:
$http.put("/api/attendance/PutAttendRecord/", stuInfo)
.then(function (d) {
var dt = d.data.class_date_am;
var dc = d.data.dc_number;
var st = d.data.status_am;
$scope.classlist.forEach(function (obj) {
if (dc == obj.DcNumber) {
obj.Attend.forEach(function (attObj) {
if (dt == attObj.ClassDate) {
var el = $scope.thisElement.parentNode;
if ($(el).hasClass("statusupdated")) {
$(el).removeClass("statusupdated");
} else { $(el).addClass("statusupdated"); }
attObj.Status = st;
}
})
}
})
})
这是指令,到目前为止,除了控制台日志之外,它没有完成任何事情。
var updateRecord = function () {
var directive = {
link: link
}
return directive;
function link(scope, element, attrs) {
console.log(element.val());
}
}
app.controller("ModifyRecordController", ModifyRecordController)
.directive("updateRecord", updateRecord);
谢谢!