AngularJs依赖注入的一个错误,代码不报错但代码也一句都不执行

在这里插入图片描述
百度找来找去没找到答案,最后想到还是去看看官方文档吧
在这里插入图片描述
结果:顺序必须完全一致,我检查来检查去没想到是这个问题。

以后找不到bug产生的原因多看看文档吧。。。

又出现bug了,接着上面那个bug来,改完上面那个bug后chrome报错了

TypeError: $cookies.put is not a function
    at c.<anonymous> (toDetailPage?goodId=1:168)
    at d (angular.min.js:30)
    at Object.instantiate (angular.min.js:31)
    at angular.min.js:61
    at angular.min.js:49
    at q (angular.min.js:7)
    at E (angular.min.js:48)
    at f (angular.min.js:42)
    at angular.min.js:42
    at angular.min.js:18

原因:AngularJS v1.2.9的cookies模块$cookies这个对象就没有网上百度的什么put方法,那都是在新版本中才有的。v1.2.9主推的是 $cookieStore(后面的版本即将废弃),用的版本太老了。。。

这里能看到v1.2.9的api:https://code.angularjs.org/1.2.9/docs/api/ngCookies.$cookies

又来了,$ cookies这玩意有延迟,v1.2.9的angularJs,$ cookieStore.put(‘car’,car);这个方法做了更改的话在一次交互的时间内是不会更新到浏览器的cookie的

$scope.addToCar=function () {
    if($scope.checkIntegrity()==false)return;
    var car=$cookieStore.get('car');
    if(car==null||car==undefined){
        car=[];
        var item={};
        item.goodId=$scope.goodJson.id;//以商品id和规格选项作为区分
        item.so=JSON.parse(JSON.stringify($scope.selectedData));
        item.num=1;
        car[car.length]=item;
    }else{
        //遍历car中是否存在同样的商品,以商品id和规格选项作为区分
        var i,j;
        for(i=0;i<car.length;i++){
            if(car[i].goodId==$scope.goodJson.id){
                for(j=0;j<car[i].so.length;j++){
                    if(car[i].so[j]!=$scope.selectedData[j]){
                        break;
                    }
                }
                //有就把数量加一
                if(j==car[i].so.length){
                    car[i].num++;
                    break;
                }
            }
        }
        //没有就加入到购物车
        if(i==car.length){
            var item={};
            item.goodId=$scope.goodJson.id;//以商品id作为区分
            item.so=JSON.parse(JSON.stringify($scope.selectedData));
            item.num=1;
            car[car.length]=item;
        }
    }
    console.log(">--------->")
    $cookieStore.put('car',car);//破方法,有延迟,做了更改的话在一次交互的时间内是不会更新到浏览器的cookie的,用document.cookie代替一下
    document.cookie="car="+escape(JSON.stringify(car));
    console.log($cookieStore.get("car"));
    console.log(">--------->")
    //如果用于已经登陆了,存入redis记录购物车
    $http.get('fore/detail/saveCar').
    success(function (resp) {
        console.log(resp+">>>>");
    }).
    error(function (resp) {
        console.log(resp+">>>>");
    });
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值