I'm currently having a problem when passing an array to a directive via an attribute of that directive. I can read it as a String but i need it as an array so this is what i came up with but it doesn't work. Help anyone? thks in advance
Javascript::
app.directive('post', function($parse){ return { restrict: "E", scope:{ title: "@", author: "@", content: "@", cover: "@", date: "@" }, templateUrl: 'components/postComponent.html', link: function(scope, element, attrs){ scope.tags = $parse(attrs.tags) } } }
HTML::
<post title="sample title" tags="['HTML5', 'AngularJS', 'Javascript']" ... >
If you're accessing this array from your scope, i.e. loaded in a controller, you can just pass the name of the variable:
Binding array to directive variable in AngularJS
Directive:
scope:{ title: "@", author: "@", content: "@", cover: "@", date: "@", tags: "=" },
Template:
<post title="sample title" tags="arrayName" ... >
you can also have to use $scope instead of attrs. then you will get array object, otherwise you will get an string.
scope:{ title: "@", author: "@", content: "@", cover: "@", date: "@", tags: "=" }, link: function(scope, element, attrs){ scope.tags = scope.tags }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With