对于所有事情都使用指令是不好的做法,在形式上还是在表现方面?我开始将它们看作是渲染HTML的函数,就像函数一样,它们在非常谨慎和组合时变得有用。
但是,我开始担心这会导致性能不佳或指令过载。这是我想如何使用它们的一个例子 - 我对反馈很感兴趣,尤其是关于性能的反馈等。
<!-- This could even be wrapped in a my-editing-area-navbar directive -->
<my-navbard heading="{{pg.constants.navHeader}}">
<my-jump-to-page></my-jump-to-page>
<my-divider></my-divider>
<my-undo></my-undo>
<my-redo></my-redo>
<my-divider></my-divider>
<my-clear></my-clear>
<my-accept-and-continue acceptFunction="pg.acceptAndContinue()"></my-accept-and-continue>
<my-divider></my-divider>
<my-reset-utility></my-reset-utility>
</my-navbar>
<my-left-column heading="{{pg.constants.leftColHeading}}">
<my-preview-component></my-preview-component>
<my-debug-utility ng-if="{{pg.showDebug}}"></my-debug-utility>
</my-left-column>
<my-main-content heading="{{pg.constants.mainHeading}}" subheading="{{pg.constants.mainSubheading}}">
<my-message-viewer></my-message-viewer>
<my-content-mainpulator>
<my-content-frobber></my-content-frobber>
<my-dohicky></my-dohicky>
</my-content-mainpulator>
</my-main-content>
</my-page>
答案 0 :(得分:2)
在我看来,几乎任何小型,模块化和可重复使用的东西都应该在指令中。保持DRY。如果它真的特定于控制器/视图,那么实际上没有必要将它抽象成它自己的东西。
我不能谈论性能,但是我所使用的指令性重型应用程序都没有感到迟钝或任何东西。而且我愿意交换指令所提供的封装和重用可能带来的性能损失。
我看到的指令与任何其他专门的html元素(输入框,文本区域等)的方式相同,并且以相同的方式使用它们(当你知道角度朝向使用{{3时更有意义] }})。只要确保它编码良好,你就不应该看到性能问题。