angular.js - pengecualian mekanisme pengikatan dua hala sudut
黄舟
黄舟 2017-05-15 17:02:56
0
1
839
目前项目为当页面应用admin,因为使用angular不是很多,但也做过一个项目。属于原理不是很懂,但大概怎么知道使用的水平。
最近遇见了一个让我比较差异的问题。一直找不到问题的所在所以来此求angular的点评下我的异常,或者说angular的双向绑定机制。

很简单的一个table列表,我目前的增删改查的功能大概步骤是这样的:
查询:查询
新增:新增----新增成功后再一次调用一次查询,实现了添加数据后立马列表就成功显示出来了不需要刷新。
修改,删除也是和新增一样,成功后再一次调取查询,更新一下数据列表。
代码如下: `

angular.module('index_area').controller('GoodlistCtrl',GoodlistCtrl);
GoodlistCtrl.$inject = ['$state','GoodResource','PublicResource',"$stateParams"];
fungsi GoodlistCtrl($state,GoodResource,PublicResource,$stateParams) {

document.title ="基础商品列表";
var vm = this;
vm.pagecount;                                                           //分页总数
vm.pageint=1;                                                           //当前分页导航
vm.skip=0                                                               //从第几个开始
vm.limit=12;                                                            //从第几个结束
vm.list;

//获取页面坐标
vm.index=$stateParams.index;    
PublicResource.navclass(vm.index)


//分页点击事件
vm.pageChanged = function(){
    
}
//获取sessionId
vm.seid=PublicResource.seid("cw19931024");


//新增商品
vm.addinfo = function(list){
    GoodResource.addlist(list,vm.seid).then(function(data){
        console.log(data)
    })
}

//查询基础商品列表
info_list(vm.seid);

/**
    • Koleksi produk asas

    • @param {Objek} seid
      */

    1. senarai_info(){

          GoodResource.list(vm.seid,vm.skip,vm.limit).then(function(data){
             vm.list=data.result;
             console.log(data.result)
         })

      }

      vm.getmack = fungsi(id){

         $state.go("/good/format",{"id":id})

      }

      vm.delinfo = fungsi(id){

         layer.confirm('您确定要删除数据?', {
               btn: ['确定','取消'] //按钮
         }, function(){
             remove(id);
         });

      }

    2. alih keluar(id){

         GoodResource.dellist(vm.seid,id).then(function(data){
             console.log(data)
              if (data.status=="OK") {                    
                 layer.msg('删除成功~', {icon: 1});
                 info_list(vm.seid);
                 layer.closeAll();
             } else{
                 layer.msg('删除异常,请联系管理员~', {icon: 0});
             }
         })

      }
      }

    `
    Anda boleh melihat bahawa pemadaman adalah dalam kod pemadaman:
    `function remove(id){

        GoodResource.dellist(vm.seid,id).then(function(data){
            console.log(data)
             if (data.status=="OK") {                    
                layer.msg('删除成功~', {icon: 1});
                info_list(vm.seid);
                layer.closeAll();
            } else{
                layer.msg('删除异常,请联系管理员~', {icon: 0});
            }
        })
    }`

    Apabila saya menentukan bahawa ia berjaya, saya segera menghubungi info_list() untuk bertanya, tetapi hasilnya ialah data pada halaman tidak dikemas kini dalam masa Ia hanya apabila saya mencetuskan pemadaman untuk kali kedua mengemas kini data sebelumnya.
    Apakah punca masalah ini? Adakah kerana mekanisme rendering angluar? Tetapi mengapa ia boleh dikemas kini dalam masa apabila saya menambah sesuatu atau menanyakannya?

    Ini ialah data terbaharu yang dikembalikan oleh pertanyaan, yang menunjukkan bahawa saya memang telah berjaya memadamkannya, tetapi mengapa ia tidak boleh dimuat semula tanpa penyegerakan?

    黄舟
    黄舟

    人生最曼妙的风景,竟是内心的淡定与从容!

    membalas semua(1)
    给我你的怀抱

    Terima kasih atas jemputan! Walau bagaimanapun, kod yang anda hantar membuat saya mabuk. Ia benar-benar sukar untuk difahami.

    Saya mungkin telah menyelesaikannya, anda boleh cuba mengubahnya:

    GoodlistCtrl.$inject = ['$scope', '$state','GoodResource','PublicResource',"$stateParams"];
    
    function GoodlistCtrl($scope, $state,GoodResource,PublicResource,$stateParams) {
    
        function info_list(){
            GoodResource.list(vm.seid,vm.skip,vm.limit).then(function(data){
               vm.list=data.result;
               $scope.$apply();
               console.log(data.result);
            });
        }
    }
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan