Я создал повторно используемый компонент с директивой следующим образом:
app.directive("menu", function () {
return {
restrict: 'AE',
templateUrl: '/menu.html',
scope: {
title: '=title'
}
};
});
menu.html:
<div>{{title}}</div>
Очевидно, я хочу передать свойство title
извне, и показ находится внутри menu.html
.
Использование в main.html:
<div menu title="test"></div>
Результат: маска не разрешена. Зачем?
Вы должны заявить об этом так:
app.directive("menu", function () {
return {
restrict: 'AE',
templateUrl: '/menu.html',
scope: {
title: '@'
}
};
});
Text Binding (Prefix: @)
One-way Binding (Prefix: &) (for functions)
Two-way Binding (Prefix: =)
Это сообщение SO более глубокое о @vs =
title: '@'
(который работает) вместо title: '='
(который не работает)?
Существует три типа привязки к директивам:
Поэтому в вашем случае, если вы только заботитесь о отображении текста, вы должны использовать нотацию "@"