首页 > 解决方案 > 使用 Jquery Ajax 后,Angular 函数突然不起作用

问题描述

我还是php编程新手,我想了解为什么当我使用我的 jquery ajax 方法发布我更新数据库上的值时我的 Angular 函数停止工作。

这是我在 html 上的 Angular 代码:

<tfoot ng-app="kembalianApp" ng-controller="kembalianCtrl">
    <tr>
        <th class="has-text-right" colspan="6">TOTAL : </th>
        <th class="has-text-right" ><p ng-model="total" ng-init="total='<?php echo $record2['total'];?>'"><?php echo $total;?></p></th>
    </tr>
    <tr>
        <th class="no-border has-text-right" colspan="6">BAYAR : </th>
        <th style="max-width:100px;padding:0" class="no-border"><input type="text" class="input has-text-right has-text-weight-bold" ng-model="bayar"></th>
    </tr>
    <tr>
        <th class="no-border has-text-right" colspan="6">KEMBALIAN : </th>
        <th class="no-border has-text-right">{{kembalian()}}</th>
    </tr>
</tfoot>

这就是我的角度代码

var app = angular.module('kembalianApp', []);
app.controller('kembalianCtrl', function ($scope) {
    $scope.kembalian = function () {
        if (parseInt($scope.bayar - $scope.total) >= 0) {
            return $scope.result = parseInt($scope.bayar) - parseInt($scope.total);
        } else {
            return $scope.result = '-';
        }
    };
});

这是我的 Jquery ajax 代码

$(document).ready(function () {
    $('.kurang').on('click', function () {
        var id_pesanan = $(this).data('id_pesanan');
        var id_makanan = $(this).data('id_makanan');
        var jumlah = $(this).data('jumlah');
        jumlah = parseInt(jumlah);
        jumlah = jumlah - 1;
        $.post('assets/ajax/kurangmenu.php', {
            id_makanan: id_makanan,
            id_pesanan: id_pesanan,
            jumlah: jumlah
        }, function (data) {
            $('#containerpesanan').html(data);
        });
    });

    $('.tambah').on('click', function () {
        var id_pesanan = $(this).data('id_pesanan');
        var id_makanan = $(this).data('id_makanan');
        var jumlah = $(this).data('jumlah');
        jumlah = parseInt(jumlah);
        jumlah = jumlah + 1;
        $.post('assets/ajax/kurangmenu.php', {
            id_makanan: id_makanan,
            id_pesanan: id_pesanan,
            jumlah: jumlah
        }, function (data) {
            $('#containerpesanan').html(data);
        });
    });
});  

我不明白为什么我使用 jquery ajax 后我的角度不起作用。

标签: phpjqueryhtmlangularjsajax

解决方案


这是您的 AngularJS 代码中的错误:-

<p ng-model="total" ng-init="total='<?php echo $record2['total'];?>'"><?php echo $total;?></p>

ng-model 用于双向绑定。ng-model 不支持 p 标签。如果你想绑定 p 标签,那么你可以使用 ng-bind 或 {{}}。

<p ng-bind="total"></p>

或者

<p {{::total}}></p>

推荐阅读