我正在设计一个主网格和子网格,通过单击主网格的一行,子网格中的数据会相应更改。为此,单击主网格的一行后,我从子 Controller 调用 reloadItmes() ,如下所示:
$("#masterTable tbody").on("click", "tr", function (event) {
event.preventDefault();
jQuery(this).addClass('selected').siblings().removeClass('selected');
angular.element($('#childTable')).scope().reloadItems();
});
但是,我发现将 DOM 代码与 Angular 代码混合并不是一个好的做法,但我不知道这段代码会导致什么问题。
最佳答案
因为 Angular 范围和dom之间的冲突。 实际上它们处于不同的时间周期,将它们混合在一起并不是一个好主意。 我遇到了这个问题,最后我不得不在 Angular 中调用一个假函数来强制它读取我的 dom 更改并应用它们。这完全是一个同步问题。
因此,如果您可以将两个代码部分放入一个 Controller 中,或者全部用纯 js 完成,结果将具有更好的性能,并且更容易扩展或理解。
关于html - 为什么我们不应该将 DOM 代码与 Angular 代码混合在一起?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70505259/