Подтвердить что ты не робот

Передача массива через атрибут в директиву AngularJS

В настоящее время у меня проблема с передачей массива директиве через атрибут этой директивы. Я могу читать его как String, но мне нужно это как массив, так что это то, что я придумал, но он не работает. Помогите кому-нибудь? thks заранее

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']" ... >
4b9b3361

Ответ 1

Если вы получаете доступ к этому массиву из своей области, то есть загружаете в контроллер, вы можете просто передать имя переменной:

Связывание массива с директивой переменной в AngularJS

Директива

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

Шаблон:

<post title="sample title" tags="arrayName" ... >

Ответ 2

вы также можете использовать $scope вместо attrs. то вы получите объект массива, иначе вы получите строку.

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


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