使用 Jquery Ajax 后,Angular 函数突然不起作用

Posted

技术标签:

【中文标题】使用 Jquery Ajax 后,Angular 函数突然不起作用【英文标题】:Angular Function suddenly won't working after Using Jquery Ajax 【发布时间】:2019-05-13 10:25:41 【问题描述】:

我还是 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 后我的 angular 不起作用。

【问题讨论】:

不是 angular 而是 angularjs,改变你的标签 :) 您是 jQuery 工作,而 AngularJS 不工作,还是在添加 jQuery 代码后没有工作? @Alaan :谢谢您的回复,我想感谢他,有人已经编辑了标签。 @Sayed Mohd Ali:我的 Angularjs 在我按下按钮以使用 jquery ajax 更改我的数据库上的值后似乎无法正常工作。但 jquery 本身工作正常。感谢您的所有回复,如果我在这里犯了很多错误,对不起,我现在还在学习 【参考方案1】:

这是您的 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>

【讨论】:

好的,谢谢您的回复赛义德。我真的很感激它,也许我会试试看。

以上是关于使用 Jquery Ajax 后,Angular 函数突然不起作用的主要内容,如果未能解决你的问题,请参考以下文章

从 jquery $.ajax 到 angular $http

使用 jQuery 设置输入值后更新 Angular 模型

如何使用 JQuery Ajax AngularJs 制作 post req

ajax调用后使用jQuery插入记录不起作用

使用JQuery的.ajax()提交表单后当前页面表单内容被清空,请问如何保留数据?

如何在使用 jquery 进行 ajax 操作后清空 TINYMCE 内容