我正在构建一个注册表单,该表单将提交用户的输入,然后使用特定于该新用户的模板转换为已登录状态。
据我了解,要做到这一点,我必须ng-submit()
在html模板中使用$state.go()
in控制器。
模板:
<form ng-submit="register(name, password)">
...
<input class="btn btn-success btn-lg btn-block" type="submit" value="Sign Up">
</form>
控制器:
angular.module('myApp').controller('RegisterController',
['$scope','userService', function($scope, userService) {
$scope.register = function(name, passed) {
userService.register(name, passed);
$state.go("app.home");
}
}])
但是,我只需要使用几个地方$state.go()
,在大多数情况下,ui-sref
在html模板中就足够了。就是这种混合ui-sref
和$state.go()
好的做法?根据ui-router文档,它们实质上执行相同的操作。但是,由于状态转换分散在两个不同的地方(模板和控制器),所以对我来说,感觉就像是代码的味道。
我尝试一起使用ui-sref
,ng-submit
但是它不起作用,ng-submit
被忽略了。在这种情况下,最佳做法是什么?
所有ui-sref
做的是产生一个href
与URL指定状态属性。
如果您想路由用户互动所无法实现的某处href
(在这种情况下,请提交表单),则必须使用$state.go
。
您可以这样看:
ui-sref
:href
绑定到元素的属性。$state.go
转换为其他状态,由您的JavaScript代码控制本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句