在angularjs ui-router中提交表单

时间:2013-09-18 05:11:34

标签: angularjs angular-ui-router

我正在使用angular-ui-router。提交表单时,我想激活ui-routing,其中使用ui-sref= "url"定义Angularjs中没有action元素,因此我使用的是ng-submit元素。

我如何/在哪里定义ui-sref网址?

form通常包含以下代码。但下面的'url'不是通过ui-router路由的。

form(name="LNquestionForm", action="/url")

我想做点什么

form(name="LNquestionForm", ng-submit='ui-sref = "url" ')

因此路由通过myAngularApp.js发生: -

var myApp = angular.module('myApp', ['ui.router']);

myApp.config(function($stateProvider, $urlRouterProvider) {

  // Now set up the states
  $stateProvider
    .state('/url', {
      url: "/url",
       templateUrl: "partials/someLink" }

    })

1 个答案:

答案 0 :(得分:10)

我不太确定我的问题是否正确但是从我的理解中你想提交一个表单并被重定向到你的$ statePorivider的给定状态而没有任何服务器调用。如果是这种情况,您可以轻松地执行类似的操作:

<form ng-submit="onFormSubmit" name="myForm">
  <input type="text" required/>
  ....
</form>

在与表单关联的控制器中,您应该执行以下操作:

$scope.onFormSubmit = function () {
  if(myForm.$valid) {
    $state.href('/url' [, optional parameters if needed]);
  }
}

注意onFormSubmit函数是否需要在控制器中注入状态服务或在应用程序控制器中引用它。

请注意,我在示例中添加了一些表单验证。