I've read many times that dependency injection was at the core of angularjs, but after having read the source, the part that stroke me really was the embedded parser. It seems obvious since it also provides template functionnalities, but since it's two way data binding, it's really more than an improved search/replace function.