Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS-ng单击“不在自定义指令中工作”_Angularjs_Append_Angularjs Ng Click - Fatal编程技术网

AngularJS-ng单击“不在自定义指令中工作”

AngularJS-ng单击“不在自定义指令中工作”,angularjs,append,angularjs-ng-click,Angularjs,Append,Angularjs Ng Click,我已经创建了一个自定义指令。模板中定义的控件似乎工作正常。但是,我需要根据某些条件将另一个控件-图像按钮附加到模板中定义的控件。为此,我加入了一个IF条件,创建了一个图像按钮,并添加了一个“ng click”属性。然而,在我的模板控件的“html”中使用javascript的图像按钮“append”似乎不起作用,因为它说no“append”是一个未定义的函数。因此,我使用了“concat”,这会渲染图像按钮,但“ng click”不起作用。控制器中的函数确实会被命中。请帮忙 我找到了答案,答案

我已经创建了一个自定义指令。模板中定义的控件似乎工作正常。但是,我需要根据某些条件将另一个控件-图像按钮附加到模板中定义的控件。为此,我加入了一个IF条件,创建了一个图像按钮,并添加了一个“ng click”属性。然而,在我的模板控件的“html”中使用javascript的图像按钮“append”似乎不起作用,因为它说no“append”是一个未定义的函数。因此,我使用了“concat”,这会渲染图像按钮,但“ng click”不起作用。控制器中的函数确实会被命中。请帮忙


我找到了答案,答案很简单!当我调用onSelectNoteField时,我的指令没有访问/链接到范围!因此,一种不同的方法奏效了

如果scope.control.Properties.DetailFormID!=00000000-0000-0000-0000-000000000000&&scope.control.Properties.DetailFormID!=0&&scope.control.Properties.DetailFormID!==未定义{ var img=document.createElement'input'; img.type=图像; img.src=../../Images/plus.png; img.高度=10; img.width=10; img.style.position='绝对' img.style.left=parseIntlocation[0]*1.5-13+px img.style.top=parseIntlocation[1]+3+px //img.className=ng范围ng绑定 //img.onclick=onSelectNoteFieldscope.control.Properties.DetailFormID var attr=document.createAttributedata-ng单击; attr.value=onImageClick'+scope.control.Properties.DetailFormID+'; img.attributes.setNamedItemr; html=html.concatimg.outerHTML; } var elem1=$compilehtmlscope; 元素。替换为元素1; scope.onImageClick=函数子表单{ var id=子形式; scope.onImageClick=函数控件{ var scope=angular.element$form.scope; scope.onSelectNoteFieldid; }
}您是否尝试过先替换元素,然后再编译?您的意思是element.replaceWithhtml;元素=$compileelementscope;'。这不会创建'class'属性..忘记我之前的评论-到目前为止,我只以不同的方式使用了$compile。