It's definitely looking better to me, @haroonrasheed333!  One more comment, though. (sorry).  You've got all_sections_have_choices set to true by default.  Do you want that to be true even when books.has_books is not?  That would seem a little strange at first glance.

Also, a similar comment on the placement where you are declaring your local book_details variable: if books.has_books is false, you wouldn't even need it, so maybe you should move that line inside of the if statement.

I never saw Christian's comments, nor do I see my previous one, so do please check with him on this as he has a more in-depth view on what's going on here.  My comments are more general.

By the way, in spite of my critiques, please know that I am also learning angular, from you, during this process!