100% '単一ページ' 駆動ではないアプリを作成しています。この新しい JS フレームワークを簡単に学習できるように、Angular を「ヘルパー」としてのみ使用しています。私のアプリの多くは、angular リソースなどではなく、昔ながらの get と post で制御されています。
レールによって作成された外側のフォームがあります(action="" などがあります)。
このフォーム内には 3 つの「リスト」があります。3 つの異なる種類の todo リストのようなものですが、送信時に Rails に送信される単一のフォームになっています。
リストの 1 つに、新しいタスクを追加できるテキスト ボックスが表示されます。ユーザーがテキストボックスで「Enter」を押してモデルに追加できるようにしようとしていますが、親フォームを送信する必要はありません。
angularでこれを行うことができることを読みましたngForm
(フォームをネストするように見せるため) が、これを行う方法や何が間違っているのかわかりません。これが私のコードです:
main.js.コーヒー
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>