コンポーネントを作成しましたが、コンポーネントのテンプレートを動的にしようとしています。つまり、条件によっては親タグがdivでなければなりません。Ng-inside ng-templateが機能しない場合
私はng-ifを使用しようとしていましたが、何とか動作しません。ここにコードスニペットがあります。なんらかの理由で、ng-ifがtrueであっても、ネストされたdiv(.testDiv。testThumbnail)は未定義となり、これによってコンポーネントが破損します。
ng-ifがtrueの場合でもコンポーネントが見つからない理由を理解できません。私はAngular JSを初めて使っているので、ここで何か不足しているかもしれません。または、ある条件に従ってコンポーネントの親タグを動的に作成するより良い方法があります。
function myCardController($window) {
var element = angular.element(document.querySelector('.testDiv .testThumbnail'));//is undefined
}
angular.module('myApp').component('myCard', {
\t templateUrl: 'testTemplate', ,
\t controller: ["$window", myCardController],
});
<script type="text/ng-template" id="testTemplate">
<div ng-if="true"
class="testDiv">
<div role="img" class="testThumbnail"></div>
</div>
<a ng-if="false" class="tesstDiv">same content</a>
</script>
'ng-if'は独自のスコープを作成します。 DOMを隠すわけではありませんが、完全に削除します。代わりに 'ng-show'を試してみて、同じ問題があるかどうか確認してください –