2016-12-01 5 views
1

私はdojoを8年前に使用しました。したがって、dojo 1.7+には非常に新しいです。パラメータを取るメソッドを定義したいが、それにはdojoモジュール(lang)の要件もある。だから私は次のことを試みた。JavaScriptメソッドを渡すパラメータ

<script> 
    function fillReportTable(repId) { 
     require(['dojo/_base/lang'], function(lang) { 

      //just example calls to lang.. 
      var obj = { a:"b", c:"d" }; 
      var thing = lang.clone(obj); 
      repId = repId + 1; 
     }); 

     return repId; 
    }; 

    alert(fillReportTable(13)) 
</script> 

しかしalert(fillReportTable(13))ではなく、私が行方不明です何番14の全体の関数の定義を示して?

答えて

1

あなたがdojoを使用しようとしている場合は、ほとんどすべてAMD module、おそらくほんの少しvanilla Javasciptする必要があります。だから、あなたは

て、myApp/fillReportTable.js

define(['dojo/_base/lang'],function (lang) 
{     
    return function fillReportTable(repId) { 
     var obj = { a:"b", c:"d" }; 
     var thing = lang.clone(obj); 
     return repId + 1; 
    } 
}); 

AMD moduleにあなたの機能をオンにして簡単にすることができ、その後、あなたは

require(["myApp/fillReportTable"], function( fillReportTable) 
{ 
    console.log(fillReportTable(123)); 
}); 

それをrequireことができますが、あなたを続ける場合アプローチを使用して解決することができます。Promise

function fillReportTable(repId){ 
    return new Promise(function(resolve){ 
     require(['dojo/_base/lang'],function (lang){     
      var obj = { a:"b", c:"d" }; 
      var thing = lang.clone(obj); 
      resolve(repId + 1); 
     }); 
    }); 
}; 
ECMAScript6 feature

はそれが

を役に立てば幸いであること、それは

fillReportTable('Hello World').then(function(repId){ 
    console.log(repId); 
}); 

注意を使用する方法

関連する問題