Uncaught TypeError: Cannot read property 'defaults' of undefined

当我在angular+requirejs的项目里使用angular-chart的时候出现了Uncaught TypeError: Cannot read property 'defaults' of undefined的错误,最后的原因在于amd的加载策略,

修改angular-chart.js源文件

开始部分:

(function (factory) {
  'use strict';
  if (typeof define === 'function' && define.amd) {
    // AMD. Register as an anonymous module
    define(['angular', 'chart.js'], factory);
  } else if (typeof exports === 'object') {
    // Node/CommonJS
    module.exports = factory(require('angular'), require('chart.js'));
  } else {
    // Browser globals
    factory(angular, Chart);
  }
这段代码表明angular-chart依赖angular 和chart.js,但是在requirejs里使用define(['chart.js']),requirejs会默认查找当前的requirejs的根目录下的chart.js而不会查找在config里的path定义的别名

解决方式
将里面的chart.js改成你在

require.config({
	"path":{"chart别名":"............."}
})
所定义的chart别名
(function (factory) {
  'use strict';
  if (typeof define === 'function' && define.amd) {
    // AMD. Register as an anonymous module
    define(['angular', 'chart别名'], factory);
  } else if (typeof exports === 'object') {
    // Node/CommonJS
    module.exports = factory(require('angular'), require('chart别名'));
  } else {
    // Browser globals
    factory(angular, Chart);
  }

demo

https://github.com/wand933/angular-requirejs-angular-chart/tree/master

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值