How to use `replace` of directive definition?

后端 未结 4 1883
执笔经年
执笔经年 2020-12-02 09:27

In this document: http://docs.angularjs.org/guide/directive , it says that there is a replace configuration for directives:

templ

相关标签:
4条回答
  • 2020-12-02 10:10

    Replace [True | False (default)]

    Effect

    1.  Replace the directive element. 
    

    Dependency:

    1. When replace: true, the template or templateUrl must be required. 
    
    0 讨论(0)
  • 2020-12-02 10:19

    Also i got this error if i had the comment in tn top level of template among with the actual root element.

    <!-- Just a commented out stuff -->
    <div>test of {{value}}</div>
    
    0 讨论(0)
  • 2020-12-02 10:26

    As the documentation states, 'replace' determines whether the current element is replaced by the directive. The other option is whether it is just added to as a child basically. If you look at the source of your plnkr, notice that for the second directive where replace is false that the div tag is still there. For the first directive it is not.

    First result:

    <span myd1="">directive template1</span>
    

    Second result:

    <div myd2=""><span>directive template2</span></div>
    
    0 讨论(0)
  • 2020-12-02 10:28

    You are getting confused with transclude: true, which would append the inner content.

    replace: true means that the content of the directive template will replace the element that the directive is declared on, in this case the <div myd1> tag.

    http://plnkr.co/edit/k9qSx15fhSZRMwgAIMP4?p=preview

    For example without replace:true

    <div myd1><span class="replaced" myd1="">directive template1</span></div>
    

    and with replace:true

    <span class="replaced" myd1="">directive template1</span>
    

    As you can see in the latter example, the div tag is indeed replaced.

    0 讨论(0)
提交回复
热议问题