如何将表单标记为" Dirty"在angularjs中使用表单名称?

时间:2016-06-14 01:49:00

标签: html angularjs forms typescript

我试图在表单中动态添加一些html元素。当我单击一个按钮时,这些元素在html表单中正确添加。下面是我的html表单声明。

<div ng-cloak ng-form="" name="jobEntryForm" id="jobEntryForm" job-entry-layout confirm-on-exit ng-hide="vm.showEstimateContacts">
<!-- other elements here-->
</div>

在这个div中,我正在添加动态html元素,如下所示:

<div class="col-md-2 pull-left ">
  <div ng-include="'/App/Job/Entry/tasksMenuButton.html'"></div>
</div>

虽然tasksMenuButton.html中的html元素是动态添加的,但它们不属于任何指令。这个tasksMenuButton.html也有一些动态元素(即寄售任务),它们是使用ng-include指令添加的。现在要处理寄售任务的功能,我创建了单独的控制器(即consignmentTask.controller.ts)。现在我想要的是将表单jobEntryForm设置为来自此控制器内部的脏。但我无法访问该表单。控制器没有任何财产来保存表格。以下是范围界面:

export interface IConsigmentTaskScope extends ng.IScope {
        task: IConsignmentTask;
        contactEntryModalInstance: ModalServiceInstance;
        serviceListModalInstance: ModalServiceInstance;
        messageModalInstance: ModalServiceInstance;
    }

如何在此(consignmentTask.controller.ts)控制器中获取 jobEntryForm 表单并使其变脏?

**我尝试使用id / class获取表单元素,但元素包含一个表单属性为null。

1 个答案:

答案 0 :(得分:0)

您可以在范围内定义 jobEntryForm

export interface IConsigmentTaskScope extends ng.IScope {
    task: IConsignmentTask;
    contactEntryModalInstance: ModalServiceInstance;
    serviceListModalInstance: ModalServiceInstance;
    messageModalInstance: ModalServiceInstance;
    jobEntryForm: ng.IFormController
}

然后拨打$scope.jobEntryForm.$setDirty()