Lua:在子包之间加载模块

时间:2015-10-13 06:21:26

标签: lua require relative-path

我有以下包结构

var id = treshID
                $.ajax({
                    url: "../../WebService.asmx/MakeSure",
                    data: "{ 'id': '" + id + "'}",
                    dataType: "json",
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    success: function (data) {
                         $.ajax({
                              url: "/UserImages",
                              data: your data model here,
                              success(function(html)){
                               $("#yourPartialViewWrapperHere").html(html));
                               }
                         });
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                    }

                });
来自private class func urlWithName(name: String, var args: [String: String]) -> NSURL { args["username"] = "ijoshsmith" let baseURL = "http://api.geonames.org/", queryString = queryWithArgs(args), absolutePath = baseURL + name + "?" + queryString return NSURL(string: absolutePath)! } private class func queryWithArgs(args: [String: String]) -> String { let parts: [String] = reduce(args, []) { result, pair in let key = pair.0, value = pair.1, part = "\(key)=\(value)" return result + [part] } return (parts as NSArray).componentsJoinedByString("&") }

我知道我可以轻松拨打--main.lua --module1.lua --utils/ |----a.lua |----b.lua --data/ |----c.lua |----d.lua module1.lua。而且在utils.a范围内,我可以通过执行类似

的操作来引用data.d
utils/a.lua

但我如何从utils/b.lua

中要求--a.lua local current_package = (...):match("(.-)[^%.]+$") require(current_package .. 'b')

由于

1 个答案:

答案 0 :(得分:1)

您可以使用

local parent_package = (...):match( "^(.-)[^.]+%.[^.]+$" )
require( parent_package .. "utils.a" )

如果您认为您的给定包结构可能是更大的包结构的一部分。否则你应该从任何地方使用绝对模块路径:

require( "utils.a" )