The above didn’t spit out any of my console.log commands in the js, so I also tried to use an ng-mouseover.
This invokes the js and I can see my parameters are getting through correctly, but it returns undefined
I’ve tried with the alias and also hardcoding the principal name (as in the example above)
To test my syntax I replaced dimensionElement with dimensionAttributes, using just the instance and dimension parameters and it returned an array as expected
That is because the tm1-default-element is expecting a string / text and not a function. Although the function returns a string, it still has to be pass the value properly into tm1-default-element for it to accept the result.
Normally, a string can be passed by enclosing them within {{ < variable here > }}. However it is not advisable to do this with functions, which can often lead to lots of $digest cycles being involved.
Going back to your case, where is the source of the value 61023367?
Ideally, you can use a variable instead for which you can update based on an event on your page. So the above will look like:
On your source, if it is a dropdown for example, you can add an ng-change in there, and trigger the $tm1Ui.dimensionElement function to update the variable we have used:
The above is just an example. If you are using SELECT, an easier alternative is to just use SUBNM with the pure dropdown mode enabled. As the ng-model of the SUBNM should always give you the Principal Name of the selected element.