2016-07-12 9 views
0

ng-click属性をString.replaceを使用して文字列内のIMGタグに追加する必要があります。JavaScriptによるhtml属性の追加replace(regexp)

例:

<p>Test1</p> 
<p> 
    <img class="fr-dib fr-draggable" src="http://admin.fsn.dev/uploads/a4cafaf13aabb97b041a50ae55c7bb6d331a7cc4.jpg" ng-click="openModal('http://admin.fsn.dev/uploads/a4cafaf13aabb97b041a50ae55c7bb6d331a7cc4.jpg')"> 
    Foto1 
</p> 
<p> 
    <img class="fr-dib fr-draggable" src="http://admin.fsn.dev/uploads/c5a7fc84d8f552d208e5ee0e0cbcecc0d547b441.jpg" ng-click="openModal('http://admin.fsn.dev/uploads/c5a7fc84d8f552d208e5ee0e0cbcecc0d547b441.jpg')" style="width: 300px;"> 
</p> 

どれ提案:

<p>Test1</p> 
<p> 
    <img class="fr-dib fr-draggable" src="http://admin.fsn.dev/uploads/a4cafaf13aabb97b041a50ae55c7bb6d331a7cc4.jpg"> 
    Foto1 
</p> 
<p> 
    <img class="fr-dib fr-draggable" src="http://admin.fsn.dev/uploads/c5a7fc84d8f552d208e5ee0e0cbcecc0d547b441.jpg" style="width: 300px;"> 
</p> 

はに変換する必要が?

私はこれを試みたが、運:(

data = data.replace(/<img(.*)src="(.*)"(.*)>/ig,'<img $1 src="$2" ng-click="openModal(\'$2\')" $3') 
+0

レンダリングされたdomにangleディレクティブマークアップをフックするには、間違った解決策を検討しています。 –

+0

これはあまり正確ではないことは分かっていますが、このタグを画像に添付する必要があります。 htmlは外部のwysiwygエディタから作成され、イベントを添付してクリック時に画像をズームする必要があります。 – Simone

+0

また、angleJsの代わりにJQueryを使用することもできます。これは、angluarJsがdomで動作するよう指示する必要があり、Jqueryはセレクタを使用するだけで柔軟性があるからです。 –

答えて

0

はこの試してみてくださいません:私は正規表現であることを疑うが、

data.replace(/(<img.*src="([^"]*)"[^>]*)>/ig,'$1 ng-click=\"openModal(\'$2\')\">'); 

正規表現はわずか2つのキャプチャグループを使用しています

を。タグに属性を追加する理想的な方法。
example

関連する問題