Как отправить новый объект, а также очистить $anchor.task?

StackOverflow https://stackoverflow.com/questions/1588211

Вопрос

Используя AngularJS ( Ангулярный интерфейс ) фреймворк, как у меня есть "Отправить кнопка "обновить текущую сущность, а также очистить идентификатор привязки - в основном я хочу быстро добавлять записи, но это всегда превращает мою форму добавления в форму редактирования.

Вот мой текущий 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>
Это было полезно?

Решение

Если вы хотите иметь быстрые добавления, вот что вам нужно изменить

Я предполагаю, что у вас есть:ng-entity="задача=Task" в вашем коде.Вам нужно изменить это на ng-entity="Task" это изменяет объявление таким образом, чтобы оно не было связано с привязкой.Видишь http://docs.getangular.com/Ng-entity для получения более подробной информации.Это также означает, что вам придется вручную создать экземпляр задачи в ng-init.

Затем в привязке сохранения вам нужно создать экземпляр Task document с параметрами по умолчанию для объекта task:Задача (task)

Чем вам нужно это сохранить:Задача (task).$save()

Наконец, вы хотите очистить форму, поэтому вам нужно сбросить значение объекта задачи на пустое.Это можно сделать только после сохранения объекта, поэтому вам необходимо включить обратный вызов метода $save():Задача (task).$сохранить( {:$root.задача={};} )

$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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top