我正在尝试扩展现有 Liferay portlet 的某些功能。作为其中的一部分,我想使用 Alloy UI 来修改 portlet 中字段的值。有一个预先存在的<aui:script>
块,我想在其中定义我的自定义函数。我继续尝试使用A.one('element')
,但我收到错误“A 未定义”。 A.one()
在同一个 .jsp 文件中的其他地方使用,尽管不是在一个<aui:script>
块中,并且它按预期运行。
我试过谷歌搜索这个问题无济于事。我尝试的一种解决方案是在元素块中包含“use”语句,但这使得该块中的所有函数在从 jsp 调用时都未定义。
我所说的“使用”声明是这样的:
<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>