我的观点有
<input type="checkbox" class="check_box" ng-model="campaign.paused"
ng-click="CampaignPauseClicked(campaign, $event)" />
<p>campaign.paused == {{campaign.paused}}</p>
与 <p>
用于调试。它显示false
,正如它应该的那样,给定数据,但在 Controller 中
$scope.CampaignPauseClicked = function(campaign, $event)
{
campaign.paused = ! campaign.paused;
当我在第一行代码上断点时, campaign.paused
的值是 true
(!)。
我搜索了代码并 campaign.paused
没有在其他地方写过。
知道这里会发生什么吗?
[更新]我正在使用 ng-click
fucntion,我没有完整地展示它,因为我需要它“吞噬” $event
并防止其传播给父级。
最佳答案
这是因为当您单击该复选框时,ng-model
正在更新该值。你正在撤销 Angular 为你所做的事情。
如果您想在 $scope.CampaignPauseClicked
函数中自行执行此操作,请从 html 中删除 ng-model
部分。
否则,您可以让 Angular 完成它的工作,保留 ng-model="campaign.paused"
子句,并从 ng-click
中删除第一行打回来。
关于AngularJs 复选框难题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36823705/