angularjs开发过程,错误集合

来源:互联网 发布:源码包安装apache 编辑:程序博客网 时间:2024/06/07 13:53
  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.xhttp 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…