AngularJS将数据绑定到已编译的元素

时间:2016-07-27 14:19:05

标签: javascript angularjs

我使用$compile在for循环中创建元素,我需要将数据绑定到它们。

for (var item in data) {
    var elem = $compile('<panel ng-model="item"></panel>')($scope)[0];
    container.append(elem);
}

如何获取面板指令来访问商品数据?我必须手动附加元素,因此我无法使用ng-repeat

2 个答案:

答案 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
}