angularjs - 如何将属性复制到内部元素

标签 angularjs angularjs-directive

我正在为 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/

相关文章:

javascript - 使用 ngAnimate 向下/向上滑动?

javascript - 在函数开头向 $scope 声明空数组有什么用? (在 AngularJS 中)

javascript - AngularJS Material - 使用电话 "back"按钮关闭对话框

jquery - AngularJS 指令不执行 Jquery-ui 菜单

javascript - 如何以 Angular 在每一行显示两列?

javascript - Angular、React 和 Blaze(客户端 Meteor)之间的主要设计差异?

java - 如何在AngularJS中使用JAVA创建的 session

javascript - angularJS 指令中的 Highchart

javascript - 在使用 angularjs 指令渲染之前从 DOM 中删除元素

javascript - Angular JS 属性指令采用变量