【发布时间】:2014-07-09 23:07:33
【问题描述】:
我有一个带有注册表单的模式。相同的表单应该显示在着陆页的底部,而不是模式。
目前我处理注册模式的控制器将$modalInstance 作为其参数之一以及$scope 等。如果我将ng-controller="SignUpCtrl" 添加到登录页面中的元素,它不起作用,因为控制器不是t 通过 $modal.open 方法创建,因此 Angular 抱怨 Unknown provider: $modalInstanceProvider <- $modalInstance。
我有一个用于注册用户的服务(authService.signUp(data).then/catch...),但控制器本身做的更多——处理输入、发出事件(例如,带有翻译的错误消息)、设置 cookie 等。
在不复制几乎整个控制器代码的情况下处理这种情况的最佳方法是什么?我应该将代码从控制器移到另一个更高级别的服务中吗?
【问题讨论】:
-
您使用的是“UI-Bootstrap”模式angular-ui.github.io/bootstrap/#/modal 吗?如果您可以提供一些代码,这将有所帮助。看来,我目前正在解决类似的问题。
-
我现在通过使用事件解决了它。我没有将
$modalInstance传递给处理表单和注册逻辑并在那里关闭模式的控制器,而是触发一个事件并在名为$modal.open的控制器中收听它。这是一个sn-p:gist.github.com/szimek/76fc9fc295f317c3cac8 -
我已经给出了答案,可能会有所帮助[go][1] [1]:stackoverflow.com/questions/25872280/…
标签: angularjs angular-ui angular-ui-bootstrap