ideally you should bubble an action up the hierarchy. This allows for some nice lose coupling. Reaching up the hierarchy manually is essentially instant technical debt.
This was going to be a component that I was going to use in multiple places, so I wanted to keep as much functionality inside the view… However if I was going to do it again, I’d move most of the logic into the controller.
Regardless, using this.controller inside textField did work before 1.0.0, and now it doesn’t. I kind of expected a little documentation on a breaking change like that…
I had the same problem and I tried solving the issue for an excessive amount of time. If I had known that the text field was now a component instead of a view, it would’ve saved me a lot of time. I honestly have no idea why the change was not documented…
That being said, what I know is that components are supposed to be isolated, therefore they shouldn’t know about their controllers. Basically, you shouldn’t be able to do something like this.('controller').doSomething().
You can definitely do all of your logic inside the component, but as soon as you need to communicate with the rest of the application, you do so with the sendAction method.