2015-03-31 94 views
2

我是requirejs和AMD模块函数的新手,我试图从require调用传递一个参数,但是我遇到了一些麻烦。我正在尝试将这个obj传递给有趣的方法。这需要调用在一个定义方法中,如下面的代码所示。我按照指示从这个博客:http://blog.novanet.no/4-strategies-for-passing-parameters-to-requirejs-modules/在requirejs中通过require调用参数定义

define(['require'],function(require){ 
    var obj= {name:'random'}; 
    require({ 
     config : { 
      'tagging' : obj 
     } 
    },['fun'],function(promise){ 
     promise.then(function(ret){ 
     //do something. 
     }); 
    } 
} 

然后我想用传送obj参数在这下面的代码。 在fun.js

//传递OBJ到fun.js

define(['module','lie'],function(data,Promise){ 
    var promise = new Promise(function(res,rej){ 
     //do something 
    }); 
} 

但相反我正在控制台上出现以下错误:

TypeError: depMaps.slice is not a function

上解决这个任何线索? PS:如果还有更好的方法,请让我知道。

感谢,

+0

什么是你想通过提供做'{ 配置:{ '标记':OBJ } }'需要调用 – Vishwanath 2015-03-31 12:08:29

+0

我想通过'obj'给fun.js(并将其用作数据)。在那里我会做一些计算。这个'obj'是我在调用函数内计算的东西。 – zelta 2015-03-31 16:34:22

+0

我正在使用此链接进行参评,抱歉未在问题中提供此链接。 链接:http://blog.novanet.no/4-strategies-for-passing-parameters-to-requirejs-modules/ – zelta 2015-03-31 16:35:32

回答

0

这可以通过返回返回承诺的功能,而不是直接返回的承诺很容易做到。然后,您可以将数据传递给此函数以获取承诺并进行您想要对承诺和数据进行的任何计算。

define(['require'],function(require){ 
    var obj= {name:'random'}; 
    var data = { 
     'tagging' : obj 
    } 
    require(['fun'],function(promiseGetter){ 
     promiseGetter(data).then(function(ret){ 
     //do something. 
     }); 
    } 
} 

和fun.js

define(['lie'],function(Promise){ 
    var promise = new Promise(function(res,rej){ 
     //do something 
    }); 
    return function(data){ 
     //DO whatever you want to do with data here 
     return promise; 
    } 
}