我有这样的代码:
{{1}}
当我单击复选框“已处理”时,它工作正常(调用changeProcessedStatus函数)。但是当我点击复选框“付费”时,由于记录被定义为过滤,因此当我删除ng-repeat过滤器时,不会调用changePaidStatus函数。(我不知道为什么)。正常调用changePaidStatus函数。
我该如何解决这个问题?感谢。
答案 0 :(得分:3)
ng-click和ng-model的执行顺序不明确。相反,您应该使用ng-change来确保获得模型变量的正确值:
<div class="row"
ng-repeat="x in orders|orderBy:'order_id'| filter:{ paid: '0' } ">
<div class="col left">
<INPUT TYPE="CHECKBOX" NAME="processed" id="processed"
ng-true-value="'1'"
ng-false-value="'0'"
ng-model="x.processed"
ng-change="changeProcessedStatus(x.id, x.processed)">上菜/未上菜
<P>
</div>
<div class="col left">
<INPUT TYPE=CHECKBOX NAME="paid" id="paid"
ng-true-value="'1'"
ng-false-value="'0'"
ng-model="x.paid"
ng-change="changePaidStatus(x.id, x.paid)">付款/未付款
<P>
</div>
</div>