1

我想将模板中的内容绑定到 Angular 应用程序中的数据。模板存储在一个 html 文件中并包含绑定表达式:

<div>
    <div class="case-header">
        <h3>Case Details</h3>
    </div>
    <div class="case-body">
        <div>
            <label>Case Number:</label><div>{{item.CaseNumber}}</div>
        </div>
        <div>
            <label>Name:</label><div>{{item.CandidateName}}</div>
        </div>
        ...
    </div>
</div>

为模板提供上下文和数据的元素是 ng-grid 中的一行。在下面的函数中,我创建了一个新范围来包含当前行的数据。模板的内容从 html 文件中检索并在构造控制器时缓存到属性中。但是, $compile 调用并没有按照我的意愿绑定数据。该函数返回模板标记,其中仍然包含绑定表达式。我尝试了两种风格的绑定表达。

    $scope.getTooltip = function (row) {
        var scope = $scope.$new();
        scope.item = row.entity;
        var elem = angular.element($scope.template);
        var result = $compile(elem)(scope);
        return result.html();
    };

相对于文档,对 $compile 的调用似乎是正确的,但我想我一定误解了一些东西。

如何获取注入模板的数据值?

普朗克

这是一个可以玩的Plunker 。

4

1 回答 1

1

$compile(scope) 返回对原始 dom 元素或其克隆的引用,因此您应该将其附加到某个元素。我已经更新了你的 plunker http://plnkr.co/edit/qatH4XNKPxjPyicur67T?p=preview所以看看它是否有效。

于 2013-07-03T18:50:11.397 回答