3

関数ul内のすべての要素にアクセスできるように、ディレクティブの下に構造化する方法。link

以下のコードでは、elm(コンソールへのログ) を見ると、コメント タイプで、ul は兄弟です。elmul が関数内の子ノードになるようにディレクティブを構成するにはどうすればよいですかlink(ディレクティブが接続されている場所)。それが不可能な場合、すべての兄弟を取得する方法。したがって、ネストされたリスト (ul、li) をレンダリングしたいのですがul、リンク関数でそれぞれにアクセスする必要もあります。

助けてくれてありがとう。

[comment, ready: function, toString: function, eq: function, push: function, sort: function…]
0: comment
baseURI: "http://run.plnkr.co/PSOXzsCDf5Re0e4S/"
childNodes: NodeList[0]
data: " ngRepeat: d in data "
firstChild: null
lastChild: null
length: 21
localName: null
namespaceURI: null
nextElementSibling: ul.cont.ng-scope
nextSibling: ul.cont.ng-scope
ng-1379388042747: 6
nodeName: "#comment"
nodeType: 8
nodeValue: " ngRepeat: d in data "

コード: http://plnkr.co/edit/oGwJNN?p=preview

'use strict';

var app = angular.module('Directives', []);

app.controller('MainCtrl', function ($scope) {
   $scope.data = [
            {
                cont: {id:1},
                children:[
                    {id:1}, {id:2}, {id:3}
                ]
            },
            {
                cont: {id:2},
                children:[
                    {id:1}, {id:2}, {id:3}
                ]
            }
        ];
});


app.directive('test', function ($timeout) {
  return {
      template: '<ul class="cont" ng-repeat="d in data">' +
                '<li class="ch" ng-repeat="node in d.children">' +
                '<span class="span2">' + 'id - {{node.id}}' + '</span>' +
                '</li>' +
                '</ul>',
            replace: true,
            restrict: 'E',
            scope: {
                data: '=',
                conf: '='
            }
            ,
            link: function (scope, elm, attrs) {
                console.log(elm)

            }
    };
});
4

1 に答える 1

1

独自の要素ではなく要素にディレクティブを配置することで、私が行う方法でプランカーを作り直しました。そうすれば、要素は分離され、それぞれの子にアクセスできます

改訂プランカー

于 2013-09-17T04:07:39.197 に答える