1

単体テストで次の html をレンダリングするディレクティブがあります。

<div id="published-envs">
    <strong>Published to</strong>
    <!-- ngRepeat: env in fundConfigurationVersion.publicationEnvironments --><div data-ng-repeat="env in fundConfigurationVersion.publicationEnvironments" class="ng-binding ng-scope">
            QA (Jan 29, 2015)
    </div><!-- end ngRepeat: env in publicationEnvironments --><div data-ng-repeat="env in publicationEnvironments" class="ng-binding ng-scope">
            PROD (Jan 30, 2015)
    </div><!-- end ngRepeat: env in publicationEnvironments -->
</div>

私は を手に入れようとして<div id="published-envs">おり、その中に 2 つの子が含まれていると主張してい<div>ます。

私は次のことを試しましたが、うまくいきません: var environments = element.find('#published-envs'); //comes back empty

angularユニットテストでIDで要素を見つける正しい方法は何ですか?

4

1 に答える 1

1

Angular Element Docsによると、.find()

タグ名による検索に限定

試す

var environments = angular.element(document.getElementById('published-envs')).find('div');

JSFiddle の例

編集

コンパイルされたマークアップの場合、基本的に同じです。$compileサービスを注入して次のように使用する だけです

var comipledEnvironments = $compile(angular.element('<div id="published-envs"><div></div><div></div></div>'))($scope).find('div')

console.log(comipledEnvironments); // 2 <div>'s

更新された JSFiddle

于 2015-02-02T22:56:27.497 に答える