Я работаю с Angular на некоторое время. Однако сегодня мне показалось довольно странным, что attrs в моей пользовательской директиве не были связаны правильно. Вот выдержка из кода:Угловая директива смены привязки не работает в ng-repeat
<div ng-repeat="item in items">
<io-map geo-location-x="item.data.x" geo-location-y="item.data.y" zoom-level="item.data.zoom"></io-map>
</div>
angular.directive('io-map', function() {
return {
restrict: 'EA',
scope: {
geoLocationX:'=',
geoLocationY:'=',
zoomLevel:'='
},
template: '<div id="map-' + Math.round(Math.random()*100000000) + '" style="height:400px"></div>',
link: function (scope, element, attrs) {
//Some logic...
//I checked the attrs here, and found attrs.geoLocationX and so on are just plain strings like "item.data.x", meaning they are not bound, while I can assure you that item.data.x has its value.
}
}
})
Что в этом плохого? Заранее спасибо.
зачем использовать 'attrs' если вы связывании с использованием' '=? Вы уже должны иметь доступ к значению с помощью 'scope.geoLocationX', а затем двухсторонняя привязка будет работать без каких-либо' $ watch'. –
@DavinTryon Я просто ошибся 'scope' для 'attrs'. Ты прав. :) –