AngularJS指令接受参数

AngularJS directive accept parameters

本文关键字:参数 指令 AngularJS      更新时间:2023-09-26

我想将以下代码转换为指令:

<object type="image/svg+xml" data="../images/icons/apple.svg" class="icon"></object>

所以我可以这样称呼它:

<sicon type="apple"></sicon>
<sicon type="banana"></sicon>
<sicon type="orange"></sicon>

我试过了:

  .directive('sicon', function(){
    return{
      restrict: 'E',
      scope:{
        type: '=type'
      },
      template: '<object type="image/svg+xml" data="../images/icons/'+type+'.svg" class="icon"></object>'
    };
  })

但没有工作

你应该在指令中使用template函数。无需将值放在隔离范围内,因为它似乎是硬编码值

template: function(ele, attrs){
   return '<object type="image/svg+xml" data="../images/icons/'+attrs.type+'.svg" class="icon"></object>'
}

对于来自隔离范围的动态值,它将如下所示

template: '<object type="image/svg+xml" data="{{''/images/icons/''+type+''.svg}}" class="icon"></object>'