web-dev-qa-db-ja.com

属性を介して配列をAngularJSディレクティブに渡す

現在、ディレクティブをそのディレクティブの属性を介してディレクティブに渡すときに問題が発生しています。私はそれを文字列として読み取ることができますが、配列として必要なので、これは私が思いついたものですが、うまくいきません。誰か助けて?前もって

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

スコープからこの配列にアクセスしている場合、つまりコントローラーにロードされている場合、変数の名前を渡すことができます:

AngularJSのディレクティブ変数への配列のバインド

ディレクティブ:

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

テンプレート:

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

attrsの代わりに$ scopeを使用する必要もあります。その後、配列オブジェクトを取得します。そうでない場合は、文字列を取得します。

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


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