web-dev-qa-db-fra.com

Passer un tableau via un attribut à la directive AngularJS

Je rencontre actuellement un problème lorsque je passe un tableau à une directive via un attribut de cette directive. Je peux le lire comme une chaîne mais j'en ai besoin comme un tableau, donc c'est ce que j'ai proposé mais cela ne fonctionne pas. Aider quelqu'un? merci d'avance

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']" ... >
55
HeberLZ

Si vous accédez à ce tableau à partir de votre portée, c'est-à-dire chargé dans un contrôleur, vous pouvez simplement passer le nom de la variable:

Liaison d'un tableau à une variable directive dans AngularJS

Directive:

scope:{
        title: "@",
        author: "@",
        content: "@",
        cover: "@",
        date: "@",
        tags: "="
    },

Modèle:

<post title="sample title" tags="arrayName" ... >
60
Alex Osborn

vous pouvez également utiliser $ scope au lieu d'attrs. alors vous obtiendrez un objet de tableau, sinon vous obtiendrez une chaîne.

     scope:{
            title: "@",
            author: "@",
            content: "@",
            cover: "@",
            date: "@",
            tags: "="
        },


link: function(scope, element, attrs){
            scope.tags = scope.tags
        }
4
Shahadat Hossain