コントローラからAngularJsディレクティブを追加したいとします。AngularJs指示文をコントローラから動的に追加する方法は?
コントローラコード:
$scope.getLink = function(fileInfo, index)
{
if(fileInfo !== null)
{
if(fileInfo.fileType.indexOf("image") !== -1)
{
return $sce.trustAsHtml('<span ng-click="getImage('+ index +', "'
+ fileInfo.filePath +'")">view</span>');
}
else
{
return $sce.trustAsHtml('<a target="_blank" href="/phoenix/subscriber/getfile'
+ fileInfo.filePath+'">download</a>');
}
}
};
$scope.getImage = function()
{
alert("Done");
};
HTML:
<div ng-show="post.fileInfo !== null">
<div ng-bind-html="getLink(post.fileInfo,$index)"></div>
</div>
このコードは正常に動作しますが、問題は、追加ngのクリックが動作しないということです。
ng-clickはどこですか? – Thalaivar
それが私だったら、htmlにばらつきを入れます。それはng-ifイメージ、show image html、ng-if not image、show linkです。 – cYrixmorten
これもあなたのクリックの問題を解決します。コントローラから送られたhtmlがコンパイルされていないので、現時点では動作していないと思います。だから、ng-clickは何の意味も持たない(指示として扱われていないのでリンクされているなど) – cYrixmorten