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 への呼び出しはドキュメントに対して正しいように見えますが、何かを誤解しているに違いないと思います。

テンプレートに注入されたデータ値を取得するにはどうすればよいですか?

プランカー

これが遊ぶプランカーです。

4

1 に答える 1

1

$compile(scope) は、元の dom 要素またはそのクローンへの参照を返すため、それをいくつかの要素に追加する必要があります。あなたのプランカーhttp://plnkr.co/edit/qatH4XNKPxjPyicur67T?p=previewを更新したので、動作を確認してください。

于 2013-07-03T18:50:11.397 に答える