我试图将我的数据对象和对象id传递给按钮,它显示我有语法错误,字符串产生的是奇怪的输出。
控制器
$scope.dtUnitColumns = [
DTColumnBuilder.newColumn(null, 'Action').notSortable()
.renderWith(function(data, type, full, meta){
if(false) return '';
else {
return '<div class="btn-group">'
+ '<button data-toggle="modal" data-target="#modal-manage-unit" type="button" ng-click="openUpdateUnitModal('+data+')" class="btn btn-xs btn-default"><i class="fa fa-pencil"></i></button>'
+ '<button type="button" ng-click="openRemoveUnitModal('+data.id+')" class="btn btn-xs btn-default"><i class="fa fa-times"></i></button>'
+ '</div>';
}
})
];
HTML输出
<div class="btn-group">
<button data-toggle="modal" data-target="#modal-manage-unit" type="button" ng-click="openUpdateUnitModal([object Object])" class="btn btn-xs btn-default">
<i class="fa fa-pencil"></i>
</button>
<button type="button" ng-click="openRemoveUnitModal(73cc5596-9dc5-11e7-adc6-6c40088df298)" class="btn btn-xs btn-default">
<i class="fa fa-times"></i>
</button>
</div>
错误
> My data is an object.
> Syntax Error: Token 'Object' is unexpected, expecting []] at column 29 of the expression [openUpdateUnitModal([object] starting at [{4}].
> My data.id shows error, because is an UUID without string
> Syntax Error: Token 'cec042' is unexpected, expecting [)] at column 23 of the expression [openRemoveUnitModal(73cec042-9dc5-11e7-adc6-6c40088df298)] starting at [cec042-9dc5-11e7-adc6-6c40088df298].
当我尝试使用“openRemoveUnitModal(”'+ data.id +'“)”将UUID转换为字符串时,它将在字符串后面产生额外的相等。
ng-click =“openRemoveUnitModal(”73cec042-9dc5-11e7-adc6-6c40088df298“)”=“”
答案 0 :(得分:0)
data.id
之间存在字符串解析错误。只需添加正斜杠以忽略引用即可。
ng-click="openRemoveUnitModal(\''+data.id+'\')"
对于要传递的数据对象,ng-click参数必须是值(整数,字符串或布尔值)或$ scope中定义的变量。 因此,要传递数据对象。只需创建一个空对象,然后将data.id指定为数组参数即可获取数据值。
.renderWith(data, type, full, meta){
$scope.arr[data.id] = data;
return '<button data-toggle="modal" data-target="#modal-manage-unit" type="button"
ng-click="openUpdateUnitModal(arr[\''+data.id+'\'])" class="btn btn-xs btn-default"><i class="fa fa-pencil"></i></button>'
})
注意:在我的情况下,data.id有一个破折号字符串,因此需要使用正斜杠,否则会产生奇怪的行为格式。