2016-04-12 11 views
1

我試圖找出,如果你可以在一個指令中有多個HTML文件,然後根據你通過html標籤傳遞的信息,它會顯示不同的HTML佈局。Angular.JS - 在指令中可以有多個視圖嗎?

這是我正在構建的手風琴所需要的。我們希望能夠重新使用該指令,但有時候這個html將會有不同的佈局。

到目前爲止,我認爲這可以通過以下來完成:

<accordion data-attr="layout('feedback')></accordion>

然後在JS檢查什麼已經過去了,accodion指向不同的看法。

我不確定的一點是將手風琴指令指向不同的html文件。

回答

2

你可以簡單地使用ng-include指令在你的模板:

module.directive('accordion', function() { 
    return { 
    scope: { type: '&' }, 
    template: '<div ng-include="type()"></div>' 
    }; 
}); 
+0

歡呼聲,這已經幫助了很多 –

1

是的,在您的指令中,您可以將您的模板設置爲接受元素和屬性的函數。

.directive('accordion', function() { 
    return { 
    templateUrl: function(elem, attr){ 
     return 'layout-' + attr.type + '.html'; 
    } 
    }; 
}); 

而且使用它像:

<accordion type="some-file"></accordion> 
相關問題