首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Phonegap插件- module.exports

Phonegap插件- module.exports
EN

Stack Overflow用户
提问于 2015-07-14 11:51:57
回答 3查看 3.2K关注 0票数 0

如何在插件的javascript和视图的javascript之间传递对象?我在玩"apache 3编程“书中的示例代码,我被困住了.

在我的plugin.xml中,我将名称空间设置为"mool“

代码语言:javascript
复制
<js-module src="plugin.js" name="moool">
    <clobbers target="mool" />
</js-module>

plugin.js

代码语言:javascript
复制
var mol = {
    calculateMOL : function() {
        return 42; 
    }
};

var molll = {
    calculateMOLLL : function() {
        return 42222; 
    }
};

module.exports = molll;
module.exports = mol;

index.html

代码语言:javascript
复制
<!DOCTYPE html> <html>
<head>
<title>Meaning of Life Demo</title>
<meta http-equiv="Content-type" content="text/html;
charset=utf-8">
<meta name="viewport" content="user-scalable=no,
initial-scale=1, maximum-scale=1, minimum-scale=1,
width=device-width;" />
<script type="text/javascript" charset="utf-8"
src="cordova.js"></script>

    <script type="text/javascript" charset="utf-8">

    function onBodyLoad() { 
        document.addEventListener("deviceready", onDeviceReady,
        false);
    };

    function onDeviceReady() { 
        //alert("onDeviceReady");
    };


    function doMOL() {
        var res = mool.calculateMOL(); 
        alert('Meaning of Life = ' + res);
    };

    function doMOLL() {
        var res = mool.calculateMOLLL(); 
        alert('Meaning of Life = ' + res);
    };

    </script>

</head>


<body onload="onBodyLoad()"> 
<h1>MoL Demo</h1>
<p>This is a Cordova application that uses my custom
Meaning of Life plugin. </p>

<button onclick="doMOL();">Button1</button>
<button onclick="doMOLL();">Button2</button>

</body>
</html>

但当我运行第二个按钮时.有人能给我解释一下吗?

我已经尝试同时导出两个对象,例如:

代码语言:javascript
复制
module.exports = molll, mol;

但还是没用..。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-14 12:19:40

似乎按照定义,它只分配一个对象!

“clobbers元素指定分配给加载的JavaScript对象的JavaScript对象。”

票数 0
EN

Stack Overflow用户

发布于 2016-01-17 03:02:41

这是一个迟来的评论,但可能会使其他人受益。对我起作用的是类似于以下几点:

  1. 尝试按以下方式重写plugin.js函数: module.exports.calculateMOL = function() { return 42; }; module.exports.calculateMOLLL = function() { return 42222; };
  2. 在结尾处删除两个导出语句(即module.export = mol;= molll;)

这应该允许访问这两个方法,如上面的index.html文件所示。

票数 1
EN

Stack Overflow用户

发布于 2015-09-18 01:00:52

我注意到,在我构建的应用程序中,module.exports属性正在接受一个数组,如下所示。这样你就可以把你的物品都放进去了(?)(我只是在这个片段中显示数组的一个对象。)

代码语言:javascript
复制
cordova.define('cordova/plugin_list', function(require, exports, module) {
module.exports = [
    {
        "file": "plugins/org.apache.cordova.dialogs/www/notification.js",
        "id": "org.apache.cordova.dialogs.notification",
        "merges": [
            "navigator.notification"
        ]
    }, etc
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31405801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档