5

AngularJSフレームワークを使用して、「送信」ボタンで現在のエンティティを更新するだけでなく、アンカー ID をクリアするにはどうすればよいですか?

これが機能していない私の現在のdivです。それは無視しているよう$anchor.task=nullです...

「新規追加」ボタンが正常に機能することに注意してください。

<div>
    Description: <input name="task.desc" ng-required><br>
    <a href="#" ng-action="task.$save(); $anchor.task=null">Save</a>
    <input type="button" value="Add New" ng-action="$anchor.task=null">
</div>
4

1 に答える 1

4

高速追加が必要な場合は、ここを変更する必要があります

コードに ng-entity="task=Task" があると仮定します。これを ng-entity="Task" に変更する必要があります。これにより、アンカーに関連付けられないように宣言が変更されます。詳細については、 http://docs.getangular.com/Ng-entityを参照してください。これは、ng-init でタスク インスタンスを手動でインスタンス化する必要があることも意味します。

次に、保存アンカーで、タスク オブジェクトのデフォルトでタスク ドキュメントをインスタンス化する必要があります: Task(task)

保存する必要があるよりも: Task(task).$save()

最後に、フォームをクリアしたいので、タスク オブジェクトを空白にリセットする必要があります。これはオブジェクトの保存後にのみ実行できるため、$save() メソッドへのコールバックを含める必要があります: Task(task).$save( {: $root.task={}; } )

コールバック内のスコープは、タスクが宣言されているスコープと同じではないため、$root はルート スコープを参照します。

<div ng-entity="Task" ng-init="task={}">
        Description: <input name="task.desc" ng-required><br>
        <a href="#" ng-action="Task(task).$save({: $root.task={} })">Save</a>
</div>
于 2009-10-20T03:35:54.747 に答える