在 SuiteScript 2 中使用下划线
using Underscore in SuiteScript 2
我正在 SS2 中编写一个脚本,并且我 运行 进入了文档,该文档声明我应该执行以下操作。我已经这样做了,路径是正确的,但它似乎没有看到下划线,因为它在尝试使用它时返回为未定义。任何帮助都会很棒,谢谢
定义( [ 'N/email'
, 'N/runtime'
, 'N/search'
, '/SuiteScripts/af_scripts/underscore.js@1.8.3/下划线'
],
函数(电子邮件、运行时、搜索、_){
函数 onRequest(上下文){</p>
<pre><code> var request = context.request;
var us = _;
}
return {
onRequest: onRequest
};
} );
我还不知道该怎么做。但是我发现它的工作方式是这样的:
/**
* @NApiVersion 2.x
* @NScriptType usereventscript
*/
require.config({
paths:{
"coolthing":"/SuiteScripts/myFavoriteJsLibrary"
}
});
define(['coolthing'],function (coolthing){
return {
beforeLoad:function beforeLoad(ctx){
coolthing.times(2,function(){
log.debug('log','log');
});
}
};
});
我将下划线-min.js 放在与我的 Suitescripts 相同的文件夹中。
然后我在同一文件夹中创建了一个名为 'underscoreConfig.json' 的配置文件,其内容如下:
{
"paths":{
"underscore": "./underscore-min"
}
}
然后我将以下内容添加到我的脚本中:
/**
* @NApiVersion 2.x
* @NScriptType UserEventScript
* @NModuleScope SameAccount
* @NAmdConfig ./underscoreConfig.json
*/
define(['underscore', 'N/record', 'N/search'],
/**
* @param {underscore} underscore
* @param {record} record
* @param {search} search
*/
function(_, record, search) {
现在我可以在脚本中调用 Underscore 函数了。
例如
var segmentObj = _.findWhere(segmentFields, {id: segmentId});
就我而言,我使用 lodash 将 HTML 文件内容添加到我的 suitelet
当你定义你的模块时,你可以在最后插入 lodash 库,就像
define(['N/file', 'N/record', 'N/search', 'N/ui/serverWidget','./lodash.js'],
但是在函数中你不应该像
那样插入任何东西
function(file, record, search, serverWidget) {
这是一个代码示例,用于加载文件并使用 lodash 获取其内容
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope SameAccount
*/
define(['N/file', 'N/record', 'N/search', 'N/ui/serverWidget','./lodash.js'],
/**
* @param {file} file
* @param {record} record
* @param {search} search
* @param {serverWidget} serverWidget
*/
function(file, record, search, serverWidget) {
/**
* Definition of the Suitelet script trigger point.
*
* @param {Object} context
* @param {ServerRequest} context.request - Encapsulation of the incoming request
* @param {ServerResponse} context.response - Encapsulation of the Suitelet response
* @Since 2015.2
*/
function onRequest(context) {
var templateFile = file.load({
id: 'filePath'
});
//for example.
var compiled = _.template(templateFile.getContents());
}
return {
onRequest: onRequest
};
});
注:
我将文件插入到文件柜中与我的suitelet相同的位置,这就是为什么我使用这个相对路径(./lodash.js),如果suitelet不在同一个文件中,请使用完整路径.
我正在 SS2 中编写一个脚本,并且我 运行 进入了文档,该文档声明我应该执行以下操作。我已经这样做了,路径是正确的,但它似乎没有看到下划线,因为它在尝试使用它时返回为未定义。任何帮助都会很棒,谢谢
定义( [ 'N/email'
, 'N/runtime'
, 'N/search'
, '/SuiteScripts/af_scripts/underscore.js@1.8.3/下划线'
],
函数(电子邮件、运行时、搜索、_){
函数 onRequest(上下文){</p>
<pre><code> var request = context.request;
var us = _;
}
return {
onRequest: onRequest
};
} );
我还不知道该怎么做。但是我发现它的工作方式是这样的:
/**
* @NApiVersion 2.x
* @NScriptType usereventscript
*/
require.config({
paths:{
"coolthing":"/SuiteScripts/myFavoriteJsLibrary"
}
});
define(['coolthing'],function (coolthing){
return {
beforeLoad:function beforeLoad(ctx){
coolthing.times(2,function(){
log.debug('log','log');
});
}
};
});
我将下划线-min.js 放在与我的 Suitescripts 相同的文件夹中。
然后我在同一文件夹中创建了一个名为 'underscoreConfig.json' 的配置文件,其内容如下:
{
"paths":{
"underscore": "./underscore-min"
}
}
然后我将以下内容添加到我的脚本中:
/**
* @NApiVersion 2.x
* @NScriptType UserEventScript
* @NModuleScope SameAccount
* @NAmdConfig ./underscoreConfig.json
*/
define(['underscore', 'N/record', 'N/search'],
/**
* @param {underscore} underscore
* @param {record} record
* @param {search} search
*/
function(_, record, search) {
现在我可以在脚本中调用 Underscore 函数了。
例如
var segmentObj = _.findWhere(segmentFields, {id: segmentId});
就我而言,我使用 lodash 将 HTML 文件内容添加到我的 suitelet 当你定义你的模块时,你可以在最后插入 lodash 库,就像
define(['N/file', 'N/record', 'N/search', 'N/ui/serverWidget','./lodash.js'],
但是在函数中你不应该像
那样插入任何东西function(file, record, search, serverWidget) {
这是一个代码示例,用于加载文件并使用 lodash 获取其内容
/**
* @NApiVersion 2.x
* @NScriptType Suitelet
* @NModuleScope SameAccount
*/
define(['N/file', 'N/record', 'N/search', 'N/ui/serverWidget','./lodash.js'],
/**
* @param {file} file
* @param {record} record
* @param {search} search
* @param {serverWidget} serverWidget
*/
function(file, record, search, serverWidget) {
/**
* Definition of the Suitelet script trigger point.
*
* @param {Object} context
* @param {ServerRequest} context.request - Encapsulation of the incoming request
* @param {ServerResponse} context.response - Encapsulation of the Suitelet response
* @Since 2015.2
*/
function onRequest(context) {
var templateFile = file.load({
id: 'filePath'
});
//for example.
var compiled = _.template(templateFile.getContents());
}
return {
onRequest: onRequest
};
});
注:
我将文件插入到文件柜中与我的suitelet相同的位置,这就是为什么我使用这个相对路径(./lodash.js),如果suitelet不在同一个文件中,请使用完整路径.