1
У меня есть вопрос, такой код:угловая директива не область применения связывания данных
HTML:
<div class="overflow-hidden ag-center" world-data info="target"></div>
ЯШ:
.directive('worldData', ['$interval', function($interval) {
return {
scope: {
chart: '=info'
},
template: '<div>{{chart.aaa}}</div>',
link: function($scope, element, attrs) {
$scope.target = {'aaa': 'aaa'};
aaa = $scope.chart;
}
}
}])
значение диаграммы не определен, и не ШАБЛОН никакого значения , но когда я объявляю $ scope.target в контроллере, код работает, почему?
Как работает ваш код, я ожидаю, что в родительской области директивы будет указано значение «target». Насколько мне известно, функция link не делает ничего, что должно повлиять на отображаемые значения. –
Когда я использую это, 'link: function ($ scope, element, attrs) { \t \t \t $ scope.target = {'aaa': 'aaa'}; \t \t \t $ scope.chart = $ scope.target; \t \t} 'DOM визуализировать немедленно. И код отлично работает – jackieLin
Ну конечно, потому что вы переопределяете диаграмму внутри директивы. 'chart: '= info'' предназначен для передачи данных извне директивы. В этом случае вы передаете 'target' (должно быть определено вне директивы, предположительно в контроллере) директиве через' info', которая сопоставляется с '$ scope.chart 'директивы. Вы определяете цель как соответствующие данные вне директивы, которая должна быть передана? –