angular 强制更新视图,angularjs:强制重新渲染/完全刷新指令模板

博客作者在使用 Angular 指令创建下拉菜单时遇到了一个问题:第一个下拉菜单的改变并未正确刷新第二个下拉菜单的视图,尽管模型已经更新。作者发现视图陷入无限递归,尝试了使用 `ui-if` 指令来解决,通过条件判断控制元素的插入和移除,从而触发模板的重新评估。这种方法成功地解决了视图不更新的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

解决方案

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:

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值