我這裏有一個小的關注
這是來自一個名爲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