Javascript 如何从角度控制器访问ui网格单元格窗体实例

Javascript 如何从角度控制器访问ui网格单元格窗体实例,javascript,angularjs,forms,angularjs-scope,angular-ui-grid,Javascript,Angularjs,Forms,Angularjs Scope,Angular Ui Grid,我知道已经有一些关于这个问题的帖子了,但我的背景不同 我有一个包含以下可用列的网格: controller.availableColumns = [ {field: 'dpmId', displayName: 'dpm id', width: '100', enableCellEdit: false}, {field: 'value', displayName: 'value', width: '100', editableCellTemplate: editableCellTe

我知道已经有一些关于这个问题的帖子了,但我的背景不同

我有一个包含以下可用列的网格:

controller.availableColumns = [
    {field: 'dpmId', displayName: 'dpm id', width: '100', enableCellEdit: false},
    {field: 'value', displayName: 'value', width: '100', editableCellTemplate: editableCellTemplate}
]
模板为:

var editableCellTemplate = '<div>' +
    '<div ng-form name="conceptsCellEditorForm">' +
    '<input name="conceptsCellEditor" class="form-control" ui-grid-editor ng-model="row.entity[col.field]" ' +
       'ng-pattern="grid.appScope.conceptsController.myRegex" style="padding-right:20px; float:left" />' +
    '</div>' +
    '</div>';
但表单未定义,因此我得到:

TypeError: Cannot read property '$valid' of undefined

我添加了一个用于描述我的确切问题(第66行)。

问题在于,自定义单元格模板中的表单仅对呈现该表单的特定指令中的控制器可用,不幸的是,包含整个网格的控制器无法访问该表单。因此,无法访问网格中的表单?我不熟悉该组件,但我猜它不可能,除非它通过API导出验证状态。我浏览了文档,但找不到这样的API。您可以不费吹灰之力就添加此功能。
范围
位于控制器级别,但您正在为每个单元格创建一个模板。每个单元格都有自己的
范围
。将表单置于控制器级别(不能用作单元格模板)这将在
$scope
上公开它,或者让单元格使用
$scope.gridApi.edit.on.afterCellEdit
对自己的
范围进行求值。问题是,自定义单元格模板中的表单仅对呈现它的特定指令中的控制器可用,不幸的是,包含整个网格的控制器无法访问该表单。因此,无法访问网格中的表单?我不熟悉该组件,但我猜它不可能,除非它通过API导出验证状态。我浏览了文档,但找不到这样的API。您可以不费吹灰之力就添加此功能。
范围
位于控制器级别,但您正在为每个单元格创建一个模板。每个单元格都有自己的
范围
。要么将表单置于控制器级别(不能用作单元格模板),将其显示在
$scope
上,要么让单元格使用
$scope.gridApi.edit.on.afterCellEdit
对其自身的
范围进行求值。
TypeError: Cannot read property '$valid' of undefined