I'm trying to extend some functionality of an existing Liferay portlet. As part of this, I would like to use Alloy UI to modify the value of a field in the portlet. There's a pre-existing <aui:script>
block where I would like to define my custom function. I went ahead and tried using A.one('element')
, but I am receiving the error "A is not defined." A.one()
is used elsewhere in the same .jsp file, though not in an <aui:script>
block, and it functions as expected.
I have tried Googling this problem to no avail. One solution that I tried was to include the "use" statement in the element block, but this made all of the functions in that block undefined when called from the jsp.
What I mean by the "use" statement is this:
<aui:script use="aui-node,aui-base">
// ... script
</aui:script>
Here's a rough outline of what I'm trying to do:
<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>