我使用$compile
在for循环中创建元素,我需要将数据绑定到它们。
for (var item in data) {
var elem = $compile('<panel ng-model="item"></panel>')($scope)[0];
container.append(elem);
}
如何获取面板指令来访问商品数据?我必须手动附加元素,因此我无法使用ng-repeat
。
答案 0 :(得分:0)
不要为每个项目进行循环和编译。这对你的应用来说会有糟糕的表现。做:
$scope.data = data;
var elem = $compile('<div ng-repeat="item in data"><panel ng-model="item"></panel></div>')($scope)[0];
container.append(elem);
您将data
放在$scope
上,因为这是绑定的发生方式。请注意,您编写的HTML是针对特定的$ scope进行编译的。
我认为你也可以不用[0]
,但不确定。
答案 1 :(得分:0)
我已经解决了我的问题:
for (var index in data) {
var elem = $compile('<panel data="data[' + index + ']"></panel>')($scope)[0];
container.append(elem); // pseudocode line
}