在流程、门户、内容管理或服务管理中可以创建了脚本配置。
默认情况下系统以javascript格式进行编辑。
这个时候可以使用this.include()
引用脚本配置。
在v9.2以后,如果脚本配置名称以.json 、 .html 或 .css结束,系统会加载相应的编辑器。
这种情况您可以使用如下方法获取内容。
this.includeHmtl();
this.includeCss();
this.includeJson();
Source
Methods
inner
include(optionsOrName, callbackopt, asyncopt)
this.include是一个方法,当您在流程、门户、内容管理或服务管理中创建了脚本配置,可以使用this.include()用来引用脚本配置。
v8.0及以后版本中增加了服务管理的脚本配置。
(建议使用表单中的预加载脚本,需要判断加载的时候才使用本方法加载脚本,此时建议异步加载有助于表单加载速度。)
Syntax
//您可以在表单、流程、视图和查询视图的各个嵌入脚本中,通过this.include()来引用本应用或其他应用的脚本配置,如下:
this.include( optionsOrName, callback, async )
Parameters
-
optionsOrName
String
|Object
|Array.<String>
|Array.<Object>
可以是脚本标识字符串(数组)或者是对象(数组)。
//如果需要引用本应用的脚本配置,将options设置为String或者String Array。 this.include("initScript") //脚本配置的名称、别名或id this.include(["initScript","initScript2"]) //可以是字符串数组 //如果需要引用其他应用的脚本配置,将options设置为Object或者Object Array; this.include({ //type: 应用类型。可以为 portal process cms service。 //如果没有该选项或者值为空字符串,则表示应用脚本和被应用的脚本配置类型相同。 //比如在门户的A应用脚本中引用门户B应用的脚本配置,则type可以省略。 type : "portal", application : "首页", // 门户、流程、CMS的名称、别名、id。 默认为当前应用,如果脚本在服务管理中忽略该参数 name : "initScript" // 脚本配置的名称、别名或id }) this.include([ //也可以对象和字符串混合数组 { type : "portal", application : "首页", name : "initScript" }, "initScript2" ]) //引用服务管理中的脚本 this.include({ "type": "service", "name": "scriptName" }); //引用流程管理中的脚本 this.include({ "type": "process", "application": "appName", "name": "scriptName" }); //引用内容管理中的脚本 this.include({ "type": "cms", "application": "appName", "name": "scriptName" }); //引用门户管理中的脚本 this.include({ "type": "portal", "application": "appName", "name": "scriptName" });
-
callback
function
<optional>
加载后执行的回调方法
-
async
Boolean
<optional>
是否异步加载
Examples
//定义一个方法
this.define("getUserName", function(){
return ( layout.desktop.session.user || layout.user ).name
}.bind(this))
this.include({
type : "portal",
application : "commonApp",
name : "initScript"
})
var userNameNode = this.page.get("userName").node; //获取Dom对象
var urerName = this.getUserName(); //使用initScript脚本中的方法
userNameNode.set("text", urerName ); //为DOM对象设置值
Source
inner
includeHtml(optionsOrName, callbackopt, asyncopt)
当脚本配置保存的是html文件(名称以.html结束),this.includeHtml可以以获取html内容。
Syntax
this.includeHtml( optionsOrName, callback, async )
Parameters
-
optionsOrName
String
|Object
可以是脚本标识字符串或者是对象。
//如果需要获取本应用的html(在脚本配置中),将options设置为String。 this.includeHtml("test.html") //脚本配置的名称、别名或id //如果需要获取其他应用的html,将options设置为Object; this.includeHtml({ //type: 应用类型。可以为 portal process cms service。 //如果没有该选项或者值为空字符串,则表示应用脚本和被应用的脚本配置类型相同。 //比如在门户的A应用脚本中引用门户B应用的脚本配置,则type可以省略。 type : "portal", application : "首页", // 门户、流程、CMS的名称、别名、id。 默认为当前应用,如果脚本在服务管理中忽略该参数 name : "test.html" // 脚本配置的名称、别名或id }) //获取服务管理中的html this.includeHtml({ "type": "service", "name": "scriptName" }); //获取流程管理中的html this.includeHtml({ "type": "process", "application": "appName", "name": "scriptName" }); //获取内容管理中的html this.includeHtml({ "type": "cms", "application": "appName", "name": "scriptName" }); //获取门户管理中的html this.includeHtml({ "type": "portal", "application": "appName", "name": "scriptName" });
-
callback
function
<optional>
加载后执行的回调方法
-
async
Boolean
<optional>
是否异步加载,默认为true
Since
- v9.2
Examples
//使用promise获取html
//在本应用的脚本库里配置了html,名称为test.html
var promise = this.includeHtml("test.html");
promise.then(function(html){
//假设表单上有一个容器,标识为div
var div = this.form.get('div').node;
//将html渲染在div节点上,可以查看 api o2.loadHtmlText
o2.loadHtmlText(html, {dom: div})
}.bind(this))
//在回调中获取html
//在本应用的脚本库里配置了html,名称为test.html
this.includeHtml("test.html", function(html){
//假设表单上有一个容器,标识为div
var div = this.form.get('div').node;
//将html渲染在div节点上,可以查看 api o2.loadHtmlText
o2.loadHtmlText(html, {dom: div})
}.bind(this))
//同步获取html(不推荐)
//在门户的脚本库里配置了html,名称为test.html
var html = this.includeHtml({
"type": "portal",
"application": "appName", //门户的标识
"name": "test.html"
}, null, false);
var div = this.form.get('div').node; //假设表单/页面上有一个容器,标识为div
div.set('html', html); //将html渲染在div节点上
Source
inner
includeCss(optionsOrName, callbackopt, asyncopt)
当脚本配置保存的是css文件(名称以.css结束),this.includeCss可以以获取html内容。
Syntax
this.includeCss( optionsOrName, callback, async )
Parameters
-
optionsOrName
String
|Object
可以是脚本标识字符串或者是对象。
//如果需要获取本应用的css(在脚本配置中),将options设置为String。 this.includeCss("test.css") //脚本配置的名称、别名或id //如果需要获取其他应用的html,将options设置为Object; this.includeCss({ //type: 应用类型。可以为 portal process cms service。 //如果没有该选项或者值为空字符串,则表示应用脚本和被应用的脚本配置类型相同。 //比如在门户的A应用脚本中引用门户B应用的脚本配置,则type可以省略。 type : "portal", application : "首页", // 门户、流程、CMS的名称、别名、id。 默认为当前应用,如果脚本在服务管理中忽略该参数 name : "initScript" // 脚本配置的名称、别名或id }) //获取服务管理中的html this.includeCss({ "type": "service", "name": "scriptName" }); //获取流程管理中的html this.includeCss({ "type": "process", "application": "appName", "name": "scriptName" }); //获取内容管理中的html this.includeCss({ "type": "cms", "application": "appName", "name": "scriptName" }); //获取门户管理中的html this.includeCss({ "type": "portal", "application": "appName", "name": "scriptName" });
-
callback
function
<optional>
加载后执行的回调方法
-
async
Boolean
<optional>
是否异步加载,默认为true
Since
- v9.2
Examples
//使用promise获取css文本
//在本应用的脚本库里配置了css,名称为test.css
var promise = this.includeCss("test.css");
promise.then(function(cssText){
//将css作用在表单/页面上,具体可以查看 api: o2.loadCssText
var node = this.form.getApp().content;
o2.loadCssText(cssText, {dom: node})
}.bind(this))
//在回调中获取css文本
//在本应用的脚本库里配置了css,名称为test.css
this.includeCss("test.css", function(cssText){
o2.loadCssText(cssText, {dom: document.body}) //把css作为全局渲染
}.bind(this))
//同步获取css文本(不推荐)
//在门户的脚本库里配置了css,名称为test.css
var cssText = this.includeCss({
"type": "portal",
"application": "appName", //门户的标识
"name": "test.css"
}, null, false);
var node = this.form.getApp().content;
o2.loadCssText(cssText, {dom: node})
Source
inner
includeJson(optionsOrName, callbackopt, asyncopt)
当脚本配置保存的是json文件(名称以.json结束),this.includeJson可以以获取json内容。
Syntax
this.includeJson( optionsOrName, callback, async )
Parameters
-
optionsOrName
String
|Object
可以是脚本标识字符串或者是对象。
//如果需要获取本应用的json(在脚本配置中),将options设置为String。 this.includeJson("test.json") //脚本配置的名称、别名或id //如果需要获取其他应用的html,将options设置为Object; this.includeJson({ //type: 应用类型。可以为 portal process cms service。 //如果没有该选项或者值为空字符串,则表示应用脚本和被应用的脚本配置类型相同。 //比如在门户的A应用脚本中引用门户B应用的脚本配置,则type可以省略。 type : "portal", application : "首页", // 门户、流程、CMS的名称、别名、id。 默认为当前应用,如果脚本在服务管理中忽略该参数 name : "initScript" // 脚本配置的名称、别名或id }) //获取服务管理中的json对象 this.includeJson({ "type": "service", "name": "scriptName" }); //获取流程管理中的json对象 this.includeJson({ "type": "process", "application": "appName", "name": "scriptName" }); //获取内容管理中的json对象 this.includeJson({ "type": "cms", "application": "appName", "name": "scriptName" }); //获取门户管理中的json对象 this.includeJson({ "type": "portal", "application": "appName", "name": "scriptName" });
-
callback
function
<optional>
加载后执行的回调方法
-
async
Boolean
<optional>
是否异步加载,默认为true
Since
- v9.2
Examples
//使用promise获取json数据
//在本应用的脚本库里配置了json,名称为test.json
var promise = this.includeJson("test.json");
promise.then(function(json){
//json为获取的数据
}.bind(this))
//在回调中获取json数据
//在本应用的脚本库里配置了json,名称为test.json
this.includeJson("test.json", function(json){
//json为获取的数据
}.bind(this))
//同步获取json数据(不推荐)
//在门户的脚本库里配置了css,名称为test.json
var json = this.includeJson({
"type": "portal",
"application": "appName", //门户的标识
"name": "test.json"
}, null, false);