没有定义骨干的呼叫

时间:2014-09-08 03:12:01

标签: backbone.js internet-explorer-8 requirejs

我有一个主干+ requirejs应用程序。 我在IE8中得到了这个No Define call for backbone

我已在IE8中为应用支持启用了enforceDefine

需要配置文件

define([], function(){

require.config({
  enforceDefine : true,
  shim: {
  "underscore": {
    deps: [],
    exports: "_"
  },
  "backbone": {
    deps: ["jquery", "underscore"],
    exports: "Backbone"
  },
  ...
  },
  baseUrl : 'scripts/',
  paths: {
    backbone        : '../libs/backbone/backbone',  
    jquery          : '../libs/jquery/dist/jquery',
    underscore      : '../libs/underscore/underscore'
  }
 });
});

1 个答案:

答案 0 :(得分:1)

在你的html文件中:

<doctype!>
<html>
...
<!-- You can load config ahead of require -->
<script type="text/javascript">
require.config({
  enforceDefine : true, // +1 for this in IE 8!!
  shim: {
  "underscore": {
    deps: [],
    exports: "_"
  },
  "backbone": {
    deps: ["jquery", "underscore"],
    exports: "Backbone"
  },
  ...
  },
  baseUrl : 'scripts/',
  paths: {
    backbone        : '../libs/backbone/backbone',  
    jquery          : '../libs/jquery/dist/jquery',
    underscore      : '../libs/underscore/underscore'
  }
 });
</script>
<script data-main="entry-point.js" src="path/to/require.js"></script>

在entry-point.js

define([deps1, deps2], function(Dep1, Dep2){
...
});

此外,值得一看various ways to separate config from main