2017-01-06 9 views
0

私はgetElementByIdで開くモーダルで複数のdivを作成するためにng-repeatを使用しています。 idをハードコードすると(たとえば 'modalId')、それは動作しますが、変数を使用しようとした場合は動作しません。私はそれをどのように機能させるのですか?角度:HTMLで変数を使用する方法getElementById

<div class="col-sm-4 col-md-4" ng-repeat="p in proj"> 
     <img class="myImg" ng-src="{{p.image}}" onclick="document.getElementById('{{p.id}}').style.display='block';"> 
     <div id="{{p.id}}" class="w3-modal" onclick="this.style.display='none';"> 
      <div class="w3-modal-content w3-animate-zoom"> 
      <img ng-src="{{p.image}}"> 
      </div> 
     </div> 
</div> 

使用したいp.id(行2)はintです。

+0

「ソースを表示」/ inspectが計算されたようですか? –

+0

はい他の応答で示された補間エラーが表示されます。しかし、ng-clickを使用すると、次のエラーが表示されます。エラー:v0は未定義です。私はv0が何であるか分かりません。 – sandboxj

+0

これは最初の2つのエラー行です。 エラー:v0は定義されていません anonymous/fn @ https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js line 231>機能: 2:738 – sandboxj

答えて

1

文書から:HTML DOMイベント補間の補間は許可されていません。代わりにng-バージョン(onclickの代わりにng-clickなど)を使用してください。

ここをクリックしてください:https://docs.angularjs.org/error/$compile/nodomevents

例:

$scope.imgClicked = function(id){ 
    document.getElementById(id).style.display='block'; 
} 

HTML:

<img class="myImg" ng-src="{{p.image}}" ng-click="imgClicked(p.id)"> 
+0

はい上記の補間誤差が表示されます。しかし、ng-clickを使用すると、次のエラーが表示されます。エラー:v0は未定義です。私はv0が何であるか分かりません。 – sandboxj

+0

これはエラーの最初の2行です:エラー:v0は未定義ですanonymous/[email protected]/ajax/libs/angularjs/1.5.6/a ngular.min.js line 231>機能:2:738 – sandboxj

+0

私は例を追加しました。 –

0

チェックこの

https://docs.angularjs.org/error/ $コンパイル/ nodomeventsあなたがなければなりません

あなたのコンソールで以下の警告が表示されます。

HTML DOMイベント属性の補間は禁止されています。

1は、これらの属性に結合し、そうすることには実用的な価値が唯一のセキュリティにアプリケーションが公開されていないイベントハンドラの結合はonclickのような属性を、オンロード、をonSubmitなどを作成するために

をしようとすると、このエラーが発生しますXSSのような脆弱性これらの理由から、イベントハンドラ属性(onおよびformaction属性で始まるすべての属性)へのバインドはサポートされていません。

+0

はい上記の補間誤差が表示されます。しかし、ng-clickを使用すると、次のエラーが表示されます。エラー:v0は未定義です。私はv0が何であるか分かりません。 – sandboxj

+0

これはエラーの最初の2行です:エラー:v0は未定義ですanonymous/[email protected]/ajax/libs/angularjs/1.5.6/a ngular.min.js line 231>機能:2:738 – sandboxj

+0

あなたのコードのフィドル/プランカを作成することができますか?v0未定義は、共有されたコードによるものであってはなりません。 – Deep

関連する問題