Angular.js extends HTML with additional element types. This will help you to declare many aspects and behavior of your application. The JS library of angular contains all necessary tools for templating, routing, data binding, form validation, localization etc. It pushes the developer to write code in a declarative way.
Elm - if you are only familiar with a conventional coding pattern contain only markup, some JS Elm is different. It is made specifically for GUI developing in a functional reactive programming way. With Elm you can use tools to create and manipulate graphics/text etc. It compiles all codes to HTML/JS/CSS in order to run on the browser. Elm is young compared to angular.
If you want to do some advanced GUIs and graphic behavior it’s a big task in angular, but if you are using Elm it is easy.
Angular is more stable and if you want to develop and release a large web app Angular is better than Elm.
Elm becomes complex if you want to work with external JS libraries.