angular ng click事件未启动
angular ng-click event not firing
我有一个函数,当被调用时,它会将某些html添加到我的页面中:
function htmlAppend(i)
{
dynamicHtml = dynamicHtml + '<div id="list_item_wrapper">' +
'<div class="list_item_template" id="list_image_wrapper">' +
'<img class="list_image_style" ' +
'src=" ' + jsonData.cars[i].ImgURL + ' "/>' +
'</div>' +
'<div class="list_item_template white_font car_details_wrapper">' +
jsonData.cars[i].CarName+ '<br>' +
jsonData.cars[i].Brand + '<br>' +
jsonData.cars[i].Model + '<br>' +
jsonData.cars[i].FuelType + '<br>' +
'<span style="font-size:40px;">' +
'₹ ' + jsonData.cars[i].Price +
'</span> <br> ' +
jsonData.cars[i].Experience +
'<input type="button" id="buy_now_btn" class="button1" ng-click="alert("hi")">Buy</button>' +
'</div>' +
'</div>'
}
问题:现在这个html在我的页面中正确显示,但由于某种原因,当单击按钮时,ng-click
事件不会激发,当我用onClick
替换它时,onClick
就会激发。我不明白ng-click
为什么不开火,有人能帮忙吗?
附加信息:htmlAppend
是服务的private
函数,在某些用户输入后从控制器调用。
不,你不能只在点击时写alert
。当您在ng-click指令上写入alert("hi")
时,它会自动在控制器中查找一个名为$scope.alert()
的方法。这就是onClick
工作的原因,因为它只是一个普通的旧JavaScript,而ng-click
涉及范围绑定。
在您的控制器中,写下:
$scope.alert=function(string){
alert(string);
};
你可以走了。这是正在工作的plnkr。
编辑:没有仔细阅读你正在动态绑定它。更新了plnkr。
对于这种情况,您需要编译它:
var $el = $('<button ng-click=' + 'alert("hello")' + '>I am a button</button>');
$compile($el)($scope).appendTo('#testing');
其中#testing
可以是您想要的任何DOM选择器。
不过,重点是告诉您不能只在ng-click
指令中编写alert
。
增加了额外的好处:不要在控制器中编写DOM操作逻辑。您可能需要使用指令。
相关文章:
- 从控制器返回后Ajax启动事件激发
- 触摸启动事件未在iframe iOS 6中启动
- preventDefault之后的重新启动事件
- 如何获取在一系列事件中启动事件的元素
- 当窗口打开时,IE9在加载前启动事件
- 我的 JS 代码中的会话启动事件
- 仅当前一个事件完全完成时,才启动事件
- jQuery UI - 如何区分拖动/调整大小启动事件和单击事件
- Javascript “卡住”键(未注册的键启动事件)
- pace.js:“启动”事件未触发
- 在第一次触摸启动事件时禁用所有点击事件是个好主意吗?
- 如何将“拖动启动”事件与 CKEditor 实例分离
- 触摸启动事件上的Javascript触发函数
- 绑定到触摸启动事件,导致自动对焦集中在Mobile Safari中的任何单击上
- 触摸启动事件未在原来隐藏的按钮上工作
- 有没有一种方法可以使触摸启动事件不会触发点击事件
- 检测浏览器窗口是否处于活动状态,并在窗口再次处于活动状态后启动事件[JavaScript]
- 如何检测浏览器是否支持手势启动事件
- 首先启动事件,然后转到url
- 在IE7中无法捕获鼠标启动事件