AngularJS is a Javascript framework developed by Google.

See AngularJS


If large lists (thousands of entries) needs to be displayed and pagination is not an option than the data binding of AngularJS will become a real performance problem because AngularJS creates watches for every binding used.

But for data which doesn't change a two-way binding is not necessary. The addon angular-bindonce helps by providing a directive for binding just once without creating watches.

Angular BindOnce


SnapJS is a Javascript library which implemented a sliding drawer in Javascript, mostly used for side menus.

Bootstrap Navigation Bar

The library works out-of-the-box when the drawer goes from top to bottom as in most cases when you have a side menu. But when there is a navigation bar on the top the drawer will place itself under the navigation bar with an absolut top position of 0, meaning at the top of the browser window. It ignores the positioning of the navigation bar completely.

Easiest solution for this is to change the absolute position of the snap drawers to directly under the navigation bar.

.snap-drawers {
    top: 50px !important;

Probably the content of the drawer will be placed above the content, even if the drawer is closed. The z-index needs to be adjusted for that.

.snap-drawer-left {
    z-index: 0 !important;

See SnapJS