20

bodyangularディレクティブで要素を取得するには? $('body').innerWidth();私の目的は、ディレクティブ内で jquery を使用して行うことです。私はjqueryを使用したくありませんが、角度のある組み込みのjqlite実装を使用します。

4

2 に答える 2

33

別の要素に適用されるディレクティブ内から body 要素にアクセスする必要がある場合は、次のように$documentサービスを利用できます。

app.directive("myDirective", function($document) {
  return function(scope, element, attr) {
    var bodyWidth = $document[0].body.clientWidth;
    console.log("width of body is "+ bodyWidth);
  };
});

<button my-directive>Sample Button</button>

jqLit​​e で提供されている DOM トラバーサル メソッドを使用することもできます (ただし、jQuery が提供するものよりも強力ではありません)。たとえば、angular.element.parent()メソッドを使用して再帰的なルックアップを実行し、body タグを見つけることができます。

于 2013-05-23T22:54:38.460 に答える
10

find()angular の jQLite に含まれている実装を使用したもう 1 つのバリエーション:

app.directive("myDirective", function() {
    return function(scope, element, attr) {

    var body = angular.element(document).find('body');
    console.log(body[0].offsetWidth);

    };
});
于 2013-05-24T01:16:03.040 に答える