我正在为 AngularJS 编写一个非常简单的指令,它应该转换如下所示的内容:
<input type="text" name="FirstName" mydirectivename />
像这样:
<span><input type="text" name="FirstName" /></span>
到达这里很容易:
<span type="text" name="FirstName"><input/><span>
但是现在我正忙着编写一个编译函数来执行文档中所说的“你应该很少需要做的事情”,我想我已经偏离了轨道。有没有一种简单的方法来指示模板中的特定元素应该是复制属性的目标?
谢谢
最佳答案
对于这里的简单示例,您可以使用如下内容:http://plnkr.co/edit/BbwBLa?p=preview
plunker 将嵌入原始元素并将其重新插入到包装元素内。
或者,您可以按照其他答案并指定要复制的所有内容,以进行更多控制。
如果您需要复制所有属性,并且您有足够新的 Angular 版本(1.1.4以上,请浏览文档 http://code.angularjs.org/1.1.4/docs/guide/directive ),那么您可以尝试中描述的模板函数链接。这些被赋予了原始元素的所有属性,并且可以使用它们来编写具有原始属性的新模板。我不建议以这种方式使用模板函数,因为它对我来说有点过于繁琐。
编辑
这在链接函数中非常简单地完成了您在简单示例中想要的操作。我认为这真的应该进入编译,但是当我把它放在那里时,plunker 就疯了。 http://plnkr.co/edit/PLfSU6?p=preview
关于angularjs - 如何将属性复制到内部元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19302761/