1. 在webx3的control类里面无法重定向:
navigator.redirectTo("homeModule").withTarget("error.vm");
这句是没有效果的。
webx 3.0.7要使用uribroker来重定向,可明确结束redirectTo()语句,这样就会发出redirect命令。例如:
navigator.redirectTo("homeModule").withTarget("error.vm");
rundata.getRedirectLocation(); // 这句话会结束redirectTo()语句
在下一个版本将支持 navigator.redirectTo("homeModule").withTarget("error.vm").end();
----------------------------------------------------------------------------------------------------------------------------------------------------------
2.在control vm里面设置一个变量,外层调用它的screen无法获取这个变量。有时候有这种需求。比如设置html的title.
1. 首先,control中的变量不影响到screen是一种好的风格,使control相对独立可重用。但你可以通过以下方法让screen访问control的变量:
$control.setTemplate("xxx").setParameter(...).export("var1", "var2", ...)
这样,调用的模板就可以访问到$var1, $var2。
2. 对于页面title这个情况,推荐使用pull tool:<page-tool />
在示例中,这个tool已经默认加上了。所以你可以看一下你的webx.xml中的pull tool服务的设置,如果有这行,那么就可以直接用了。
使用的方法很简单,你只要:$page.setTitle("xxx"),然后layout中就可以访问到$page.title。
page tool的类为:com.alibaba.citrus.turbine.util.HtmlPageAttributeTool
你可以根据apidoc来了解它有什么功能。
navigator.redirectTo("homeModule").withTarget("error.vm");
这句是没有效果的。
webx 3.0.7要使用uribroker来重定向,可明确结束redirectTo()语句,这样就会发出redirect命令。例如:
navigator.redirectTo("homeModule").withTarget("error.vm");
rundata.getRedirectLocation(); // 这句话会结束redirectTo()语句
在下一个版本将支持 navigator.redirectTo("homeModule").withTarget("error.vm").end();
----------------------------------------------------------------------------------------------------------------------------------------------------------
2.在control vm里面设置一个变量,外层调用它的screen无法获取这个变量。有时候有这种需求。比如设置html的title.
1. 首先,control中的变量不影响到screen是一种好的风格,使control相对独立可重用。但你可以通过以下方法让screen访问control的变量:
$control.setTemplate("xxx").setParameter(...).export("var1", "var2", ...)
这样,调用的模板就可以访问到$var1, $var2。
2. 对于页面title这个情况,推荐使用pull tool:<page-tool />
在示例中,这个tool已经默认加上了。所以你可以看一下你的webx.xml中的pull tool服务的设置,如果有这行,那么就可以直接用了。
使用的方法很简单,你只要:$page.setTitle("xxx"),然后layout中就可以访问到$page.title。
page tool的类为:com.alibaba.citrus.turbine.util.HtmlPageAttributeTool
你可以根据apidoc来了解它有什么功能。