2

ディレクティブで定義された変数にアクセスし、angularjs ディレクティブを使用してコントローラーでアクセスする必要があります。

app.directive('htmlData', function ($compile) {

    return {
        link: function($scope, element, attrs) {
                $(element).on('click', function() {
                    $scope.html = $compile(element)($scope).html();
                });

                return $scope.html;
        }

    };
});

コントローラーで $scope.html を使用します。

4

2 に答える 2

0

$ scopeで変数を設定すると、通常どおりに変数にバインドするだけで済みます。あなたの場合、osmehtingは次のようになります。

<div html-data>{{html}}</div>

がないため、更新が表示されていない可能性があり$scope.$apply()ます。

とにかく、私はあなたのコードに2つの問題があると言いましょう。まず、ng-clickディレクティブを使用してクリックイベントをHTMLに添付できます。

次に、なぜ毎回HTMLを再コンパイルするのでしょうか。その必要はほとんどありません。最初のコンパイル後にテンプレートが失われるため、大きな問題が発生する可能性があります。そのため、再コンパイルするとテンプレートが使用できなくなります。

要素を取得する必要がある場合は、を挿入できます$element

于 2013-02-02T12:30:22.910 に答える