Я пытаюсь сделать угловую директиву, которая отображает динамические URL-адреса контента на основе атрибута, помещенного в директиве. Пример:Пропускать строку в Angular директиву
Директива:
angular
.module('myModule')
.directive('myContent', directive);
function directive() {
return {
replace: true,
templateUrl: function (elem, attrs) {
return attrs.contentUrl;
}
};
}
HTML:
<div my-content content-url="url/to/my-content.html"></div>
Однако то, что я хотел бы для атрибута content-url
быть заполнен строкой из контроллера. Так скажем, контроллер использует «controllerAs» синтаксис с именем «дома», я хотел бы HTML следующим образом:
<div my-content content-url="{{home.myContent.url}}"></div>
Однако в функции templateUrl в директивы, атрибут contentUrl
посылается буквально как " {{home.myContent.url}}». Как я могу оценить это значение перед запуском функции templateUrl? Или, есть ли лучший способ иметь простой, динамический контент, доступный из директивы?
Должно быть возможным adding'scope: {conentUrl: '='} 'к вашей функции директивы, и не оставляйте фигурные скобки, когда используете его в своем html. Затем вам нужно $ смотреть значение $ scope.contentUrl в директиве. В качестве альтернативы вы также можете использовать $ attr. $ Наблюдать в функции ссылок директивы, хотя у меня нет большого опыта в этом. Google - это вы друг :-) – cYrixmorten
Похоже, вы пытаетесь воссоздать то, что угловой уже изначально связано с ng-include. Если вы не пытаетесь воссоздать его для учебных целей, я бы просто использовал ng-include. В противном случае, может быть, неплохая идея проверить исходный код, чтобы увидеть, как они это делают. –