ng-click不适用于动态html

时间:2016-06-03 08:11:43

标签: angularjs ionic-framework

我在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不适用于图片.. 当我点击图像时我只是编写测试功能没有发生任何事情。 我怎样才能做到这一点 ? 请帮我解决这个问题

3 个答案:

答案 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