如何手动编译指令?

时间:2014-03-13 17:24:01

标签: javascript angularjs angularjs-directive angularjs-scope

我有这段代码

<input type="text" name="firstName" ng-model="data.firstName" required>

但我想制定一个指令来简化它,就像这样

<my-field name="firstName"></my-field>

这是我的plnkr链接:http://plnkr.co/edit/XYk5MmE3YzKxvAHQgoZp?p=preview

两个问题 1.如何让我的领域像原始输入一样工作 2.在这种情况下是否可以使用模板属性?

由于

3 个答案:

答案 0 :(得分:2)

我自己解决了这个问题:http://plnkr.co/edit/XYk5MmE3YzKxvAHQgoZp?p=preview

我手动添加了nameng-model属性,然后重新编译了元素。

答案 1 :(得分:0)

在您的代码中,您不必仅为了设置模型值而进行自定义编译。

要获取类似ng-model的值,您可以在自定义指令中要求ngModel。

使用ngModel的示例实现是日期选择器指令

https://github.com/angular-ui/ui-date

答案 2 :(得分:0)

检查此PLUNKER ...

您可以根据需要定义指令变量,这里我只使用 myFieldVar 将变量传递给您的指令,您不必关心模板中的变量名称< / p>

我使用ng-model="myFieldVar"因此,无论您在html中绑定到 my-field-var 的范围变量,都可以将其与该名称一起使用...

<强>更新

如果您不想使用新范围,请将范围:true 添加到您的指令选项中,但在这种情况下,您只是用模板替换指令标记...

此处已更新PLUNKER