2

オブジェクトの配列をディレクティブに渡そうとしています。ディレクティブ内で ngRepeat を使用して、渡された項目をトランスクルードされた html に出力します。これは本質的に、ここで説明されている問題と同じです。

コンパイルとリンク機能を使用して、いくつかの異なる方法を試しましたが、範囲設定について頭を悩ませることはできないと思います。petebacondarwin から提案された解決策 -ここでは機能しますが、配列をディレクティブに渡す必要があります (したい)。

これが私の現在のバージョンです-Plunker

指令

(function() {
  "use strict";

  function MyDirective() {
    return {
      restrict: "E",
      scope: {
        items: "="
      },
      link: function link(scope, element, attrs) {
        var children = element.children();

        var template = angular.element('<div class="item" ng-repeat="item in items"></div>');
        template.append(children);

        var wrapper = angular.element('<div class="list"></div>');
        wrapper.append(template);

        element.html('');
        element.append(wrapper);
      }
    };
  }

  angular
    .module("app.MyDirective", [])
    .directive("myDirective", [MyDirective]);

}());

html

<my-directive items="main.items">
  <h1>{{item.title}}</h1>
  <p>{{item.content}}</p>
</my-directive>

ありがとう

4

1 に答える 1