Angular: Issue with form-level validators

http://angularjs.org/

HTML

<script type="text/javascript" ng:autobind src="http://code.angularjs.org/0.10.4/angular-0.10.4.js"></script>

<form name="user" ng:controller="Ctrl">
    <input type="password" ng:model="pwd1" required />
    <input type="password" ng:model="pwd2" />
    {{user.$valid}}
</form>

JavaScript

var PWD_MATCH = 'password-match';

function Ctrl($formFactory) {
    var self = this;
    
    // listening on root form is wrong as well
    $formFactory.rootForm.$on('$validate', function() {

        // this is super mega ugly :-D
        // no way to find widget...
        var widget = self.user.$$childTail;
        
        // validate
        if (self.pwd1 === self.pwd2) widget.$emit('$valid', PWD_MATCH);
        else widget.$emit('$invalid', PWD_MATCH);
    });
}