Javascript 如何使用angularjs嵌套表单?

Javascript 如何使用angularjs嵌套表单?,javascript,forms,angularjs,javascript-framework,Javascript,Forms,Angularjs,Javascript Framework,我制作的应用程序不是100%的“单页”驱动。当我开始学习这个新的JS框架时,我只使用angular作为“助手”。我的很多应用程序仍然由普通的get和post控制,而不是角度资源或任何东西 我有一个由rails创建的外部表单(它有一个action=”“等) 在这个表单中,我有三个“列表”,有点像3种不同类型的待办事项列表,但都是在一个表单中,当rails提交时会发送给它 在其中一个列表中,用户将看到一个文本框,可以添加新任务。我正在尝试这样做,用户可以点击文本框中的“回车”,它将其添加到模型中,但

我制作的应用程序不是100%的“单页”驱动。当我开始学习这个新的JS框架时,我只使用angular作为“助手”。我的很多应用程序仍然由普通的get和post控制,而不是角度资源或任何东西

我有一个由rails创建的外部表单(它有一个action=”“等)

在这个表单中,我有三个“列表”,有点像3种不同类型的待办事项列表,但都是在一个表单中,当rails提交时会发送给它

在其中一个列表中,用户将看到一个文本框,可以添加新任务。我正在尝试这样做,用户可以点击文本框中的“回车”,它将其添加到模型中,但不提交父表单

我已经读到,我可以用
ngForm
和angular(使其看起来像嵌套表单)来实现这一点,但我不确定如何实现这一点,也不知道哪里出了问题。这是我的密码:

咖啡

app = angular.module("Messenger", [])

app.factory "NewTasks", ->
  NewTasks = []

@processNewCtrl = ["$scope", "NewTasks", ($scope, NewTasks) ->
  $scope.tasks = NewTasks

  $scope.addTask = ->
    task = $scope.newTask
    task.timestamp = new Date().getTime()
    $scope.tasks.push(task)
    $scope.newTask = {}
]

@processTomorrowCtrl = ["$scope", ($scope) ->
]
view.html.erb

<form action="/stuff">
    <!-- ... boring code-->
    <div ng-controller="processNewCtrl">
        <!-- ... ng-repeat unordered list here for task in tasks -->
        <div class="task">
          <angular ng-form ng-submit="addEntry()">
            <input checked="checked" disabled="disabled" type="checkbox">
            <input ng-model="newTask.description" type="text" autocomplete="off" placeholder="Additional Task description">
          </angular>
        </div> 
    </div>
    <!-- ... -->
</form>

使用
ng表单
ng submit=mySaveCallback()

mySaveCallback()
应处理数据排序,然后手动发布到后端(使用
$http
$resource
或其他方法)

通常,在AngularJS中不使用传统的
,因为您通常希望在发送数据之前对数据进行处理,或者以某种方式更新AngularJS。使用传统的表单请求也会使您更改页面,这可能也是不可取的

现在,如果你说的是保持传统的方法(更改页面和传递帖子数据),我真的不知道如何在Javascript中做到这一点(因为这不是一个角度特定的问题)

但在我看来,您最好完全转换为使用AngularJS和
ngsubmit
异步提交所有表单。而且将来也会更容易合作