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

在使用AngularJS开发时,遇到一个自定义下拉框指令的问题,该指令在工作流中被两次使用。当第一个下拉框的选项改变时,它会更新第二个下拉框的模型,但视图并未正确刷新。尽管模型值在控制台显示正确,第二级下拉框仍然显示旧的和新的混合项。初步的Plunker演示了模板代码。为了解决这个问题,通常采用AngularUI团队提供的ui-if指令,将其放在元素上,通过改变myData.prop或者短暂设为null再重新应用,使得元素从DOM中移除并重新插入,从而重新评估指令,达到强制视图更新的效果。
摘要由CSDN通过智能技术生成

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、付费专栏及课程。

余额充值