angularjs开发过程,错误集合

本文解析了AngularJS中常见的错误,如[$injector:modulerr]、[$injector:unpr]等,并介绍了正确的模块定义方法和服务工厂的正确用法。此外,还探讨了$http服务的使用细节,包括废弃的success和error方法以及推荐使用的then方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. Error: [$injector:modulerr]
  2. Error: [$injector:unpr] 控制器注入失败
  3. $injector:nomod 错误
    通常出现这个错误是因为angular.module定义时写法错误;
    检查是否有[],或者是否多次定义同一个module;
    标准定义 angular.module(‘1yd.config’,[])
    加上[]表示定义,没有[]表示引用;

  4. Error: [$injector:undef] factory的service必须返回一个对象

  5. http().successisnotafuncangular1.x http promise的方法的success和error方法已经被弃用了,转为标准的then方法。
    angularjs1.x api
  6. v8要开始移除对arguments的支持了,最好开始使用es6中的参数省略和默认的形式
function (type="text",...items)
  1. $http的标准定义形式:
angular.module('cmsService').factory('commonService',['$http',($http)=>{
  let service = {}
  let userModel = {
    login_info :{},
    logPath: '',
    client_version: '1.0.0',
    get_log_path: ()=>logPath,
    set_user_info:(arg)=>{login_info = JSON.parse(arg)},
    get_user_info:()=>login_info,
    get_client_version:()=>client_version,
    setAutoMove:(state)=>{aotuMove = state},
    getAutoMove:()=>autoMove,
    resetLoginInfo:()=>{login_info = {}}
  }

  service.cms = userModel;
  service.log = (...items)=>{
    let date = new Date();
    let output = "["+date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate()+" "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds()+"]"
    for(let i = 0, len = items.length; i < len; i++){//标记2
      if(typeof items[i] == "object"){
      output += JSON.stringify(items[i])
      }else{
      output +=String(items[i]);
      }
  //  output+="\r\n";
  }
  console.log(`output${output}`);
    service.cmsFilelog(output)
  }

service.cmsFilelog=(output)=>{
  $http({
    url:'/common/log',//标记1
    method:'POST',
    data:{output:output}
  }).then((res)=>{
    console.log();
  },(res)=>{
    console.log();
  })
}

return service;

}])

在标记1处url可以自己设计。’/common/log’的实现是这样的:

var common = require('../routes/common')
app.use('/common', common);

其中common.js文件:

router.post('/log',function(req,res){})

这两个地方组合成了$http中的/common/log;
另外,如果这里的url是跨域的,比如:

service.cmsFilelog=(output)=>{
  $http({
    url:'https://angularjs.org/doesntexist&callback=JSON_CALLBACK',
    method:'JSONP',
    data:{output:output}
  }).then((res)=>{
    console.log();
  },(res)=>{
    console.log();
  })
}

注意method是JSONP.

to be continue…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值