I've been trying to load data inside a modal window using angular.js but I'm not sure how to do that. I need the url also to change when the link is clicked and the data to load inside a modal window instead of loading a new page.
I have tried using the jQuery Facebox plugin but it doesnt seem to work, I'm also using the twitter bootstrap modal component.
Below is my code:
<div class="subnav span12" id="post-main-container" ng-controller="PostsController">
<div class="btn-group pull-left span5" id="sort-nav">
<a class="btn active">Popular</a>
<a class="btn">Recent</a>
<a class="btn">Favorite</a>
</div>
<div class="btn-group pull-right " id="view-nav">
<a class="btn" id="2col"><i class="icon-th-large"></i></a>
<a class="btn active" id="4col"><i class="icon-th"></i></a>
<a class="btn" id="6col"><i class="icon-th-list"></i></a>
</div>
<div class="btn-group pull-right">
<a id="reload" class="btn"><i class="icon-refresh"></i></a>
<a class="btn"><i class="icon-random"></i></a>
</div>
<div class="row-fluid span12" id="img-container">
<ul class="unstyled" id="image-container">
<li class="post-container box2" ng-repeat="post in posts">
<div class="post-btns" style="display:none;">
<a class="btn btn-mini" href="#">Share</a>
<a class="btn btn-mini" href="#">Add</a>
</div>
<a href="#/posts/{{post.id}}"><img ng-src="{{post.image}}"></a>
<p class="post-snippet" style="display:none;">{{post.description}}</p>
</li>
</ul>
</div>
</div>
I want to load the "#/posts/{{post.id}}"
in a modal window.
Not sure if this will completely solve your problem but we have a directive wrapper of the bootstrap modal on http://angular-ui.github.com/. Because you are defining your divs in your page, the two-way data binding should just work. In regards to the url link to change, I'm not sure why you would want this since this is a modal control.
Angular-ui group has an angularjs replacement of the js for modal and some other bootstrap controls see here
--dan
The Angular way is view watching the model and you changing the model:
selectedPost
.selectedPost
and hide/show the dialog.Here is a very quick version: http://plnkr.co/edit/0fsRUp?p=preview
Checkout Angular UI, they already have a component for Bootstrap's modal.
If you happen to be using Twitter BootStrap's modal, this jsfiddle keeps the Angular components separate, which allows you to create a partial html file with only your modal's html and properly scoped bindings.
This means you can use an Angular directive declaratively in your html:
<a my-popup-directive="partials/myModal.html">Open MyModal</a>
Edit: Per @DanDoyon's (correct) comment, the directive was renamed to a non-ng
namespace.
Update: Using a Bootstrap 3 modal with Angular 1.x makes a custom directive or angular-ui modal pretty much unnecessary.
Here's my attempt to make directives for it.
http://jsfiddle.net/tadchristiansen/gt92r/
Hopefully you find it useful.