我对使用'&'
隔离范围的rowClick
. 看看下面的代码。在代码审查中,我被告知这是一种反模式,'&'
应该使用它,但我没有得到如何做到这一点的示例。
<div ng-controller="tableController as table">
<row ng-repeat="row in table.rows" row-data="row" row-click="table.updateChart">
</row>
</div>
.controller('tableController', [function() {
this.rows = [
{ id: 'foobar', values: ['Chris', 'Kayti'] }
];
this.updateChart = function(row) {
alert('TODO: update row ' + row.id);
};
}])
.directive('row', [function() {
return {
restrict: 'E',
scope: {
rowData: '=',
rowClick: '='
},
template: '<div class="row" ng-click="rowClick(rowData)">' +
'<span ng-repeat="cell in rowData.values">{{ cell }}</span>' +
'</div>'
};
}])
(见http://plnkr.co/edit/ZofcUQcPKQp4zeSNvoOe?p=preview)
我正在阅读它,但仍然感到困惑。有人可以给我一个如何重构此代码以使用的示例'&'
吗?