我想从控制器添加一个AngularJs指令。
控制器代码:
UIAlertController
HTML:
$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");
};
此代码工作正常,但问题是添加的ng-click不起作用。
答案 0 :(得分:0)
当角度具有内置指令(如ng-if
或ng-show
以在视图中对此进行管理时),无需以这种方式管理视图
您根本不需要该功能
<div ng-show="post.fileInfo !== null">
<div>
<span ng-if="post.fileInfo.fileType.indexOf('image') !== -1"
ng-click="getImage($index,post.fileInfo.filePath)">view</span>
<a ng-if="post.fileInfo.fileType.indexOf('image') === -1"
target="_blank"
ng-href="/phoenix/subscriber/getfile/{{post.fileInfo.filePath}}">download</a>
</div>
</div>
您的方法无效的原因是您自己插入指令时需要使用$compile
这里也可以使用一个简单的指令