我这里有一个小的关注
这是来自一个名为BetSlipFactory
removeSlip: function(slip) {
return betSlipSelectionRequest('/betSlip/removeSelection', {
game: slip.game,
pair: slip.pair,
line: slip.line
});
}
然后,我有在控制器此功能为服务
$scope.removeSlip = function(slip) {
$rootScope.$broadcast('betSlip:removeLines', slip);
BetSlipFactory.removeSlip(slip)
}
服务
接下来我在一个名为LinesCtrl
的不同范围内有一个控制器,我在这里有这个函数,它调用服务中的几个函数它就像一种切换功能
$rootScope.$on('betSlip:removeLines', function(event, slip) {
if (slip) {
BetSlipFactory.remove(line, row, type);
};
});
$scope.addLineToBetSlip = function(line, row, type) {
var spreadSelected = (row.spreadSelected && type === 'spread'),
totalSelected = (row.totalSelected && type === 'total'),
moneyLineSelected = (row.moneyLineSelected && type === 'moneyline');
if (spreadSelected || totalSelected || moneyLineSelected) {
BetSlipFactory.remove(line, row, type);
}else {
BetSlipFactory.add(line, row, type);
}
};
,然后将HTML:
<button ng-click="removeSlip(slip)"></button>
和:
<td ng-class="!row.moneyLineSelected ? 'lines-hover' : 'line-selected'">
<a ng-click="addLineToBetSlip(line, row, 'moneyline')">
<span ng-hide="row.noMoneyLine">{{:: row.moneyLine}}</span>
</a>
</td>
我需要:结合范围,当函数$scope.removeSlip(slip)
是呼叫,我也需要呼叫$scope.addLineToBetSlip(line, row, type)
,然后该函数应该调用BetSlipFactory.remove(line, row, type);
,因为它在该if
声明中。
当我打电话给$ scope.removeSlip(slip)时,我需要杀掉slip
参数,在BetSlipFactory
范围内一切正常。
I recorded a video for you to see what I am talking about,让我稍微解释一下视频。
在前2次尝试中,您可能会看到我可以选择和取消选择,并且一切正常,但在第3次和第4次尝试中,您会看到我选择了一条线,然后我拨打电话并拨打removeSlip(slip)
我打右边的X,为了取消选择左边的线,我必须手动完成。
[$广播问题]的可能重复(http://stackoverflow.com/questions/29926552/issue-with-broadcast) – floribon
所以基本上你说的是,当用X关闭赌注时,你需要清除左侧货币行按钮上的选择? – Ronnie
@floribon是不同的,没有人回答我的另一个问题,这是一个更好解释的问题。 Yisus。首先等待别人回答。 – NietzscheProgrammer