オブジェクトの配列をディレクティブに渡そうとしています。ディレクティブ内で 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>
ありがとう