2015-03-31 92 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; 
    } 
}