Great question, they are both solid options. As with many technology decisions, it's subtle and context specific.
1) Do you have a team of awesome JS developers, that know the language inside and out? Do you have a team more comfortable with OOP and come from a C#, AS3, Java background?
2) How important is tooling to you? Do you like an editor that helps you set breakpoints, step through code? Navigate to function, display class hierarchies? Refactor code?
3) Is building on emerging web platform standards like Web Components important to you? Dart's Web UI is build on WC and inspired by model-driven views.
4) Is scaling code important? Dart is designed to go from 10, to 1000, to 10000, to 100000 lines code easily.
5) Is pure number of 3rd party packages important to you? Of course, JS has more libraries if you go by total count. But Dart has a package manager.
6) Do you care about things like unit tests, mocks, collections, i18n, etc being built into the platform?
7) Do you care about internals like how the framework deals with dirty objects and change detection? Angular and Web UI from Dart are different here. Web UI uses @observable to mark fields or classes that can be flagged as "changed", where my impression is that Angular loops through all watched expressions.
8) Do you care about IE8 or below? Dart only supports IE9 and above.
9) Do you want your platform to give you polyfills out of the box? (e.g. requestAnimationFrame, Web Components, etc)
10) Do you like modularity from classes and libraries?
I'd recommend doing a spike with both Angular and Dart/Web UI. Have a discussion with your team. Contact both the Angular and Dart teams with your list of concerns, see which community offers the kind of support you need.
One thing I want to be clear about: Dart is all about HTML. So much, so, that there is a very clean dart:html library that makes programming the DOM feel like Dart. For example:
var div = new DivElement();
div.text = "I'm a div!";div.id
But you can always use method cascades:
var div = new DivElement
..text = "I'm a div!"
..id = 'the-div'
So an HTML and JS developer should feel at home with Dart.
And then, Dart goes farther and implements Web Components for all modern browsers. So you can build with custom elements and compile them to vanilla HTML and JS. So, <x-fancy-button> is a reality. :)
One assumption that I'm making, and most of us should make: you're OK with some sort of build step. Anyone releasing a production web application today has some sort of build step, to compress, minify, etc your code. You'll need this if you're using JS/Angular or Dart/Web UI.
I also want to clarify the hiring question... hiring someone who really knows JS, the insides and out and who can write JS without jQuery :), is tough. Dart, on the other hand, is quite familiar to anyone with an OOP background. A decent developer will pick up Dart in a few hours.
Hope that helps! Interested to hear what you come up with.