我正在使用angular4重写一个库(由我在angular1.x中开发)。
在那个库中,我曾经将包装指令中的属性复制到内部html元素中。
例如<gn-input component.ng-model="somevar"></gn-input>
gn-Input
指令的Html模板有<input class="component" type="text" />
在gn-input的编译函数中,我习惯读取gn-input元素上的所有属性,并将它们复制到input.component(带有组件类)标记。这给了我灵活性,因为我使用的是继承范围(范围:true)
----让它更清晰 例如,还有一个指令,我开发了
<gn-address country.ng-model="countryField" state.ng-model="stateField"></gn-address>
在gn-address的模板中,有两个输入(实际是下拉列表,但为简单起见假设输入)<input class='country' type="text" /> and
<input class='state' type="text" />
。
在gn-address的编译函数中,我用来读取gn-address元素的所有属性,并在类的各个输入上setAttribute它们。
这种方法节省了我很多努力来支持内部元素支持的所有指令,而包装器实际上是一个包装器。
我非常习惯angular1和它的灵活性,我发现很难在angular4中做同样的事情,保持库AOT兼容。