table 中的 ng-repeat 未触发 ng-click 事件
ng-click event not getting fired with ng-repeat in a table
vm.onQRnClicked 下的函数不会被 table 中的 ng-click 触发。 table 中 QRN 列的 link 是根据 API 的响应动态创建的。使用 ng-click 附加 event.getWf、gLEP 和 getByLE 是将在内部调用各自 API 和 return 各自响应的方法。
vm.onQRnClicked= function(){
return true;
}
getWf()
.then(function(response) {
gLEP(response.payload.lEId)
.then(function (lEPresponse) {
if (typeof lEPresponse.children !== "undefined") {
Promise.all(lEPresponse.children.map(function(e) {
return getpByLE(e.lEId)
.then(function(getpByLEresponse) {
var oLE = {};
var linkForQrN = '<a ng-click="vm.onQRnClicked()">' + e.qrN + '</a>';
oLE.html = e.html;
oLE.qrN = linkForQrN;
oLE.lEN = e.lEName;
oLE.code = getpByLEresponse.code;
vm.oLEs.push(oLE);
return html;
})
}))
.then(function(result) {
})
.finally(function() {
});
}
else
{
vm.dL = false;
}
})
.finally(function () {
});
})
.finally(function(){
});
html 下面。我尝试在 QRN 下提供专栏。函数 onQRnClicked 没有被触发。
<div class="row" >
<div class="col-xs-12 form-group">
<label class="control-label" >O D</label>
<br>
<table id="oT">
<tr>
<th>QRN</th>
<th>L E N</th>
<th>P Code</th>
<th></th>
</tr>
<tr ng-repeat="x in vm.oLEs">
<td id="qrN" ng-bind-html="x.qrN"></td>
<td ng-bind-html="x.lEN"></td>
<td ng-bind-html="x.code"></td>
<td ng-bind-html="x.html"></td>
</tr>
</table>
</div>
</div>
要按照您尝试的方式添加 ng-click 意味着您必须使用 compile
将元素绑定到 $scope
,并且不是很 angular-ish。在您的用例中,最好将 ng-click 应用于 html,这样 angular 将在运行时自动编译
<td ng-click="vm.onQRnClicked()" id="qrN" ng-bind-html="x.qrN"></td>
vm.onQRnClicked 下的函数不会被 table 中的 ng-click 触发。 table 中 QRN 列的 link 是根据 API 的响应动态创建的。使用 ng-click 附加 event.getWf、gLEP 和 getByLE 是将在内部调用各自 API 和 return 各自响应的方法。
vm.onQRnClicked= function(){
return true;
}
getWf()
.then(function(response) {
gLEP(response.payload.lEId)
.then(function (lEPresponse) {
if (typeof lEPresponse.children !== "undefined") {
Promise.all(lEPresponse.children.map(function(e) {
return getpByLE(e.lEId)
.then(function(getpByLEresponse) {
var oLE = {};
var linkForQrN = '<a ng-click="vm.onQRnClicked()">' + e.qrN + '</a>';
oLE.html = e.html;
oLE.qrN = linkForQrN;
oLE.lEN = e.lEName;
oLE.code = getpByLEresponse.code;
vm.oLEs.push(oLE);
return html;
})
}))
.then(function(result) {
})
.finally(function() {
});
}
else
{
vm.dL = false;
}
})
.finally(function () {
});
})
.finally(function(){
});
html 下面。我尝试在 QRN 下提供专栏。函数 onQRnClicked 没有被触发。
<div class="row" >
<div class="col-xs-12 form-group">
<label class="control-label" >O D</label>
<br>
<table id="oT">
<tr>
<th>QRN</th>
<th>L E N</th>
<th>P Code</th>
<th></th>
</tr>
<tr ng-repeat="x in vm.oLEs">
<td id="qrN" ng-bind-html="x.qrN"></td>
<td ng-bind-html="x.lEN"></td>
<td ng-bind-html="x.code"></td>
<td ng-bind-html="x.html"></td>
</tr>
</table>
</div>
</div>
要按照您尝试的方式添加 ng-click 意味着您必须使用 compile
将元素绑定到 $scope
,并且不是很 angular-ish。在您的用例中,最好将 ng-click 应用于 html,这样 angular 将在运行时自动编译
<td ng-click="vm.onQRnClicked()" id="qrN" ng-bind-html="x.qrN"></td>