我在html中创建动态html-click没有工作.. 我的代码如下
window.imagePicker.getPictures(
function(results) {
for (var i = 0; i < results.length; i++) {
console.log('Image URI: ' + results[i] + " : " +i);
var tmpfileName = results[i].substr(results[i].lastIndexOf('/') + 1);
var fileName=i+"_"+tmpfileName
var image = document.getElementById('addArea');
var DOM_img = document.createElement("img");
DOM_img.setAttribute("id",fileName)
var cancel_img = document.createElement("img");
cancel_img.src="img/Action-cancel-icon.png";
cancel_img.setAttribute("id","cancel_"+fileName);
cancel_img.alt="no image";
cancel_img.setAttribute("ng-click","test()");
DOM_img.src=results[i];
DOM_img.height="100";
DOM_img.width="100";
image.appendChild(DOM_img);
image.appendChild(temp);
convertImgToBase64URL(results[i], function(base64Img){
$scope.images.push(base64Img);
console.log("Added... id i " + i);
});
}
})
$scope.test=function()
{
alert("hello")
}
我也尝试过以下代码
$scope.myHtml+="<img src='"+results[i]+"' height=100px width=100px ng-click='test()'>";
<div id="addArea" ng-bind-html="myHtml">
</div>
但是ng-click无法正常工作
我该如何解决这个问题?
ng-click不适用于图片.. 当我点击图像时我只是编写测试功能没有发生任何事情。 我怎样才能做到这一点 ? 请帮我解决这个问题
答案 0 :(得分:1)
您需要编译元素:
$compile(cancel_img)($scope);
请记住在控制器中注入$compile
以便您可以使用它:
someModule.controller('MyController', ['$scope', '$compile', function($scope, $compile) {
// Your code and the $compile goes here
}]);
答案 1 :(得分:0)
动态html是角度工作方式的矛盾概念。
如果所有其他(2路绑定)意味着失败并且你真的必须注入html - 我会使用ngBindHtml
答案 2 :(得分:0)
因此,使用angularJs时的html属性(如ng-click,ng-show,...)应输入html代码,因为当我们运行应用程序时,编译器将编译&#34; ng-click&#34;等属性。在运行app之前使用javascript