我正在尝试扩展现有Liferay portlet的某些功能。作为其中的一部分,我想使用Alloy UI来修改portlet中的字段值。在一个预先存在的<aui:script>
代码块中,我想定义我的自定义函数。我尝试使用A.one('element')
,但是出现了错误"A未定义"。虽然在同一个.jsp文件中,但不在块中,A.one()
被用于其他地方,并且按预期运行。
我尝试通过搜索引擎解决这个问题,但没有成功。我尝试的一个解决方法是在元素块中包含"use"语句,但是当从jsp调用该块中的所有函数时,它们都变成未定义的。
我所说的"use"语句是指:
<aui:script use="aui-node,aui-base">
// ... script
</aui:script>
这是我尝试做的大概草图:
<aui:script>
function save(){
// This is where I'm getting the 'A is not defined' error.
var titleNode = A.one('input[name=title]');
if (titleNode) {
// do stuff with titleNode
var titleVal = titleNode.val();
var titleSubstr = titleVal.substring(0, titleSubstr.lastIndexOf('/'));
titleNode.val(titleSubstr);
}
// other save-related code here
}
function otherFunction() {
// some other functionality
}
</aui:script>