【问题标题】:Angular JS : replace property in directiveAngular JS:替换指令中的属性
【发布时间】:2016-03-04 10:52:59
【问题描述】:

在 Angular JS 中,我们有一个名为 replace 的属性,在定义指令时可以将值设置为 true 或 false。但我不明白这个属性将如何使用。设置为true时是否会替换HTML父元素

【问题讨论】:

标签: angularjs angularjs-directive directive


【解决方案1】:

实际模板:

<div class="parent">
 <my-dir><div>Hello world!!</div></my-dir>
</div>

如果replacetrue,mir-dir标签将被移除。

 <div class="parent">
    <div>Hello world!!</div>
    </div>

如果replacefalse,mir-dir标签不会被移除。

 <div class="parent">
     <my-dir><div>Hello world!!</div></my-dir>
    </div>

希望你明白!!如果您有任何疑问,请告诉我。

【讨论】:

    【解决方案2】:

    替换 - 如果设置为 true,则将使用模板替换具有指令的元素。

    PS:你必须使用 templateUrl/template 和 replace。

    HTML

    <div angular></div>
    <div class="angular"></div>
    <angular>Simple angular directive</angular>
    

    JS

    var App = angular.module('App', []);
    
    App.directive('angular', function() {
      return {
        restrict: 'ECMA',
        replace: true,
        template: '<img src="http://goo.gl/ceZGf"/>'
      };
    });
    

    以上示例角度指令将其内容“简单角度指令”替换为模板中的内容,即“替换内容”。

    【讨论】:

      【解决方案3】:

      根据angular的documentation(替换选项):

      true - 模板将替换指令的元素。

      false - 模板将替换指令元素的内容。

      假设您有一个名为 my-directive 的指令,其模板为 &lt;span&gt;directive&lt;/span&gt;,而您的 html 代码为 &lt;div my-directive&gt;&lt;/div&gt;。然后replace : false 的结果是:

      <div my-directive><span class="replaced" my-directive="">directive</span></div>
      

      replace : true 的结果是:

      <span class="replaced" my-directive="">directive</span>
      

      请注意,此选项已弃用。

      查看相关问题:

      How to use `replace` of directive definition?

      Explain replace=true in Angular Directives (Deprecated)

      【讨论】:

        猜你喜欢
        • 2013-09-15
        • 2018-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-15
        • 1970-01-01
        • 2019-10-21
        • 2014-01-25
        相关资源
        最近更新 更多