You could retrigger the angular $compiler but that is an awfully heavy task
fir such a simple thing. My question is why do you have the ng-controller
definition in the added 'li' node in the first place? Why don't you add it
to some parent dom node that is 'persistent'? Something like this:
<parent-node 'ng-controller"="assetsPollerController as poller'> ....
<li id="asset1">
<span class="status {{status}}
ng-init=>"id=1;state='queued';pollVideoAsset(1)">{{state}}</span
</li>
</parent-node>
where 'parent-node' is any HTML dom tag.
On Friday, March 6, 2015 at 12:15:38 PM UTC-5, Rob Lacey wrote:
>
> I hope someone can point me in the right direction. We have an existing
> file upload solution which I need to add a feature to, I though I would
> ease in some more Angular into our application to do this as cleanly as
> possible. Once a file has uploaded a li representing the uploaded file's
> state will be added to the dom using jQuery, say something like.
>
> <li id="asset1" 'ng-controller"="assetsPollerController as poller'>
> <span class="status {{status}}
> ng-init=>"id=1;state='queued';pollVideoAsset(1)">{{state}}</span
> </li>
>
> If this was already in the dom at the time that the angular code below was
> run, all is well.
>
> adminApp = angular.module('adminApp', [])
> adminApp.controller 'assetsPollerController', ($scope, $http) ->
> $scope.pollVideoAsset = ->
> if $scope.state == 'queued' || $scope.state == 'awaiting_file'
> $http.get('/api/v1/assets/' + $scope.id)
> .success (response) ->
> if response.video.state == 'queued'
> $timeout($scope.pollVideoAsset, 5000)
> else
> $.log(response.video.state)
>
> However, how would I go about triggering the controller to take note of
> the newly included element in the page. Is there a way to re-run the
> controller for the page so that it picks anything new?
>
> Many thanks for any thoughts and comments that might lead me in the right
> direction.
>
> RobL
>
>
--
You received this message because you are subscribed to the Google Groups
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.