Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

angularjs: force re-rendering/ full refresh a directive template [closed]

Tags:

This is a rewriting because of the off-topic issue:

I wrote a directive for a dropdown. I am using the directive two times as kind of a workflow. the first dropdown triggers by change action the refresh of the model of the second one. though the model updates correctly, the view does not. the many times you select items in dropdown one the second dropdown shows old items with new items, eventhough the console.log() of the angular model is correct.

the view has infinite recursion. Using ng-include with an id of a ng/template that does recursion about it self:

my initial plunkr showing the template code is this: http://plnkr.co/edit/jera17uCluGsFs8o5hRG?p=preview

I did not understand why the view does not fully refresh?

to be updated.

kind regards, alex

like image 896
sp33c Avatar asked Oct 12 '13 20:10

sp33c


People also ask

How do you're render in AngularJS?

For the record, to force angular to re-render the current page, you can use: $route. reload(); Causes $route service to reload the current route even if $location hasn't changed.

How to reload the page in AngularJS?

Reload Page Using location.reload() in AngularJS reload() method is when a user clicks the refresh button or presses F5 on their keyboard. It reloads the current page and clears any cookies set in the previous request to this server. It also causes all images, stylesheets, scripts, and other files to be reloaded.

What is attrs in AngularJS?

Using attrs you are able to access the attributes defined in your html tag like <fm-rating ng-model="$parent.restaurant.price" symbol="$" readonly="true"> So in this case you will have access to the symbol and readonly attributes.

What is ng repeat end?

The ng-repeat-start directive works the same as ng-repeat, but will repeat all the HTML code (including the tag it's defined on) up to and including the ending HTML tag where ng-repeat-end is placed.


1 Answers

Typically what I do is use ui-if directive which is basically an if statement made by angularui team so I'll put it on the element that is also the directive and say something like:

<div ui-if="mydata.prop" my-custom-directive></div> 

This way if myData.prop changes or I set it to null briefly then reapply it it will remove and then transclude my html directive back into the DOM causing it to eval my directive again.

like image 167
btm1 Avatar answered Oct 06 '22 16:10

btm1