入力要素に文字列を直接入力すると、AngularJSの双方向データバインディングが非常にうまく機能します。しかし、JavaScriptコードで入力要素の値を変更すると、双方向バインディングが機能しません。これを行うための良い方法はありますか?
htmlコード:
<div ng-app ng-controller="Ctrl">
    <input id="inputElem" ng-model="modelName" type="text"/>
    <span>{{modelName}}</span>
</div>
javascriptコード:
function Ctrl($scope) {
    $scope.modelName = "";
}
function foo() {
    // THIS DOES NOT TRIGGER ANGULAR DATA-BINDING!!!!
    $("#inputElem").val("THIS IS DOM MANIPULATION");
}