Могу ли я передать templateUrl в директиву - AngularJS

Есть ли способ передать templateUrl в мою директиву. Я понимаю, что могу использовать трансклюзию, но это кажется слишком большим. Например, у меня есть директива widget которую я хочу заполнить определенным html. Есть ли способ передать это как:

<div widget templateUrl="template1.html"></div>
<div widget templateUrl="template2.html"></div>

Ответы

Ответ 1

Если это фиксированный URL-адрес, вы можете определить директиву, такую как

app.directive('myDirective', function() {
    return {
        templateUrl: function(tElement, tAttrs) {
            return tAttrs.templateUrl;
        }
    };
});

затем используйте его так

<div my-directive template-url="template1.html"></div>

В противном случае вы можете передать URL-адрес, поскольку вы передадите любой другой атрибут в директиву и используете ng-include в своем шаблоне директивы.