这是我的HTML代码。我在google上发现它可以使用它。
FormattedText
这是我的angularJS控制器。
<input type="checkbox" ng-true-value="addTitle(cpPortfolioItem)" ng-false-value="removeTitle(cpPortfolioItem)">
它不起作用。我已将其记录在控制台中但我可以看到它既不推送也不拼接数组。也许$scope.addTitle = function(cpPortfolioItem){
$scope.selectedTitles.push(cpPortfolioItem.id);
console.log('$scope.selectedTitles', $scope.selectedTitles);
};
$scope.removeTitle = function(cpPortfolioItem){
$scope.selectedTitles.splice(cpPortfolioItem.id,1);
console.log('$scope.selectedTitles', $scope.selectedTitles);
};
不是有效的指令?有人可以帮我吗?我真的很感激。
答案 0 :(得分:2)
基于documentation ng-true-value
和ng-false-value
值不是事件处理程序。这些是在model
被选中(input
)或未选中(ng-true-value
)时设置为ng-false-value
的值。
改为使用this或使用ng-model
并将$watch
附加到模型中。
答案 1 :(得分:0)
使用ng-change
<input type="checkbox" ng-change="titleChange()" ng-model="titleChanged">
在控制器中,
$scope.titleChanged = false;
$scope.titleChange = function() {
if ($scope.titleChanged) {
$scope.addTitle(cpPortfolioItem);
} else {
$scope.removeTitle(cpPortfolioItem);
}
}