2016-03-15 79 views
0

我想下面的代碼轉換爲指令:AngularJS指令接受參數

<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>' 
    }; 
    }) 

但並不工作

回答

2

您應該使用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>'