我可以避免使用 $scope 并让用户操作设置 AngularJS 脏位吗?

Can I avoid using $scope and have user actions set AngularJS dirty bit?

我在表单上有 table 设置(例如复选框),用户可以添加和删除 table 行。如果用户更改设置(例如,选中或取消选中复选框),则 theForm.$dirty 会被设置,但如果向 table 添加行或从中删除行,则不会设置。我在 https://plnkr.co/edit/sOXFnZjpkrcExvxGsEVg

有一个例子

我是一名相对较新的 Angular 开发人员,但有人提醒我,如果可以避免的话,参考 $scope 并不是最佳做法。我 认为 在这种情况下,我可以让控制器依赖 $scope 然后在修改 table 的函数中调用 $scope.theForm.$setDirty()。我不确定这是我唯一的办法还是有更好的方法。

只需将表单放入控制器:

form name="vm.testForm"

但是控制器依赖作用域也没什么不好的。