【发布时间】:2016-10-14 13:55:23
【问题描述】:
我正在尝试在表单中动态添加一些 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。
【问题讨论】:
-
您为什么要手动将表单标记为脏?通常你让表单元素更新表单的脏和有效性。
-
@BryanEuton 在我的 consignmentTask.html 页面中,我有一个下拉列表来填充一些服务信息。每当我选择/更改任何服务时,我都想将表单标记为脏,以便用户意识到需要保存该表单。
-
尝试为 ngform 命名。我不在电脑前检查这个,但我认为这就是为什么当您更改选择时它不会自动为您工作。如果这不起作用,请发布带有问题选择的 sn-p 的 html。
标签: html angularjs forms typescript