我想知道是否有一種方法,我可以讓ng-click函數接受一個範圍變量,該範圍變量在相同範圍變量的ng模型的值發生變化後執行。我在名爲analyses
的列表中有一個analysis
對象列表,其中包含include
布爾屬性。它們以html形式顯示爲按鈕複選框以按下以包含/排除。ng-model在ng-model變化後執行
我有這個網站:
Number of bisulfite sequences: {{included}} used/{{excluded}} excluded
<div ng-repeat="analysis in analyses"><br><label class="btn btn-success"
ng-model="analysis.include" ng-click="set(analysis.include)" btn-checkbox>
這是在控制器代碼:
$scope.analyses = some_list_of_analyses
$scope.included = 0
$scope.excluded = $scope.analyses.length
$scope.set = function(include){
//more code to execute involving $scope.analyses
if(include){
$scope.included += 1
$scope.excluded -= 1
}
else{
$scope.excluded += 1
$scope.included -= 1
}
}
現在,假設我開始分析的列表都排除在外,因爲你可以看到在初始化中,當我點擊一個按鈕時,它應該將included
範圍變量加1,並將excluded
減1。相反,它在analysis.include
之前通過變量實際改變,所以我點擊的第一個按鈕顯示-1使用/ n + 1排除。
我能想到的解決方案是找到某種方法,在scope變量被綁定到ng-model之後執行ng-click execute,或者在ng-click方法中更改$ scope.analyses對象的某種方式,那麼ng-model語句就不需要了?
謝謝!
編輯:ng-model語句實際上是btn-checkbox指令所必需的。我需要此指令來顯示包含/排除某些分析的開關切換。用於指示包含/排除的css的替代指令或代碼將會很有幫助!
我意外地在$ scope.analysis的plunkr中創建了一個類型。數組中的第二項表示「包含」而不是「包含」,但它仍然按預期工作,因爲包含不正確,所以計數器與第一個按鈕 – jsuser
相反,因爲按鈕應該切換(所以如果包含它,你可以再次點擊它來排除它),但它看起來像你的跳躍者只是增加。也許我不清楚的問題,道歉 – user3264659
我更新了我的答案,使其切換,而不是隻增量 – jsuser