سؤال

باستخدام 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 = Task" في الكود الخاص بك. تحتاج إلى تغيير ذلك إلى ng-entity = "المهمة" وهذا يغير الإعلان بحيث لا يرتبط بالمرساة. يرى http://docs.getangular.com/ng-entity لمزيد من التفاصيل. هذا يعني أيضًا أنه يتعين عليك إنشاء مثيل المهمة يدويًا في NG-Init.

ثم في مرساة حفظ ، تحتاج إلى إنشاء مستند مهمة مع الافتراضيات لكائن المهمة: المهمة (المهمة)

مما تحتاج إلى حفظه: المهمة (المهمة). $ 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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top