【发布时间】:2015-05-12 20:13:17
【问题描述】:
你们中是否有人认为 Angular 1.3 中的表单导致控制器和 DOM 之间的紧密耦合?这是 Angular 的反模式。
例如,当为表单赋予 name='formExample' 属性时,要以程序方式将其设置为脏或无效,在控制器中我们必须执行 $scope.formExample.$setDirty()
这是一种不好的做法!
等待听到你的想法!
例子:
this.onSaveClicked = function () {
that.saveMessage = that.SAVING_IN_PROGRESS;
//Update project with changes
ProjectsBLL.update($scope.entities.project.Model, function (data) {
$scope.entities.project.Model = data;
$scope.configurationForm.$setPristine();
that.saveMessage = that.SAVING_FINISHED;
}, null)
}
【问题讨论】:
-
你建议什么替代方式??
-
你能在代码中给出一个具体的例子,当你在控制器中使用
$setDirty时?然后答案可以提供其他编码方式。 -
我有一个关于 setPristine() 的例子。只有当用户按下“取消”并且某些条件存在时,才调用 setPristine()。
-
@einav 你能把它作为代码放在问题中,也许是一个 Plunker 的链接?
-
@einav 我的意思是,如果您可以编辑问题并将代码放入其中,那么无需阅读 cmets 即可回答问题,并且代码格式合理。
标签: angularjs forms angularjs-scope