如何提交新实体以及清除$ anchor.task?

时间:2009-10-19 11:41:47

标签: javascript web-applications angularjs

使用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>

1 个答案:

答案 0 :(得分:4)

如果您想快速添加,则需要更改

我假设你的代码中有:ng-entity =“task = Task”。您需要将其更改为ng-entity =“Task”,这会更改声明,使其与锚点无关。有关详细信息,请参阅http://docs.getangular.com/Ng-entity。这也意味着您必须在ng-init中手动实例化任务实例。

然后在Save anchor中,您需要使用任务对象的默认值来实例化Task文档:Task(task)

比你需要保存它:任务(任务)。$ save()

最后,您要清除表单,以便将任务对象重置为空白。这只能在对象保存后才能完成,因此您需要包含对$ save()方法的回调: 任务(任务)。$ 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>