从指令中的HTML元素获取表单标记的名称

时间:2017-11-14 15:16:33

标签: angularjs

我正在获取ngModel名称,但我还想获取带有“validacion”指令的元素所属表单的名称。

我严格需要获取HTML元素所属表单的名称。我可以有几种形式,所以我需要一个动态的解决方案。非常感谢你

<table border="1" id="result_table">
  <tr bgcolor="#777">
    <th align="left">TestFile/TestCase</th>
    <th align="left">Pass</th>
    <th align="left">Fail</th>
    <th align="left">Error</th>
  </tr>
  <tr bgcolor="#6c6">
    <td>checkLoginPage.test1</td>
    <td>0</td>
    <td>1</td>
    <td>1</td>
  </tr>
</table>

2 个答案:

答案 0 :(得分:0)

以下代码应该获取function onDie(){ $message = ob_get_contents(); // Capture 'Doh' ob_end_clean(); // Cleans output buffer } register_shutdown_function('onDie'); 元素所属表单的name属性的值:

validacion

编辑如果项目中没有jQuery,请使用link: function (scope, element, attrs, ngModel) { console.log(element.closest('form').attr('name')); } 函数,前提是该指令元素是parent()标记的直接子元素:

<form>

答案 1 :(得分:0)

你应该要求formCtrl:

require: '^form',

并在你的指令的链接函数中使用它:

link: function(scope, element, attrs, formCtrl) {
    console.log(formCtrl);
}

有关将表单传递给指令的完整详细信息,请参阅Stackoverflow在此处解决的类似问题: Pass form to directive

编辑:使用AngularJS 1.5.x,您可以使用不同的语法(能够跳过链接功能),只需引用https://stackoverflow.com/users/1021943/priidu-neemre很好的答案,(请参阅上述链接的更多内容):

return {
  restrict : 'EA',
  require : {
    form : '^'
  },