当前位置: 首页 > 面试题库 >

angularjs:强制重新渲染/完全刷新指令模板

欧阳成弘
2023-03-14
问题内容

由于存在题外问题,这是一种重写:

我写了一个下拉菜单指令。我将指令两次用作工作流。第一个下拉菜单通过更改操作触发第二个模型的刷新。尽管模型正确更新,但视图未正确更新。在下拉菜单中多次选择项目时,即使角度模型的console.log()正确,第二个下拉菜单也会显示带有新项目的旧项目。

该视图具有无限递归。使用具有ng / template的ID的ng-include可以自我递归:

我最初显示模板代码的plunkr是这样的:http
://plnkr.co/edit/jera17uCluGsFs8o5hRG?p=preview


我不明白为什么视图没有完全刷新?

要被更新。

亲切的问候,亚历克斯


问题答案:

通常,我要做的是使用ui-if指令,该指令基本上是由angularui团队制作的if语句,因此我将其放在也是该指令的元素上,并说出类似以下内容:

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

这样,如果myData.prop更改或我将其短暂设置为null,然后重新应用它,它将删除,然后将我的html指令重新包含到DOM中,导致它再次评估我的指令。



 类似资料:
  • 问题内容: 我创建了一个生成Twitter按钮的指令。由于这些按钮上的作用域变量可能会更改,因此我需要在按钮发生时重新构建它。目前,我正在使用jQuery 链接元素并重建按钮。 有没有办法让指令完全重新呈现模板呢? 问题答案: 这是一个可重用的指令,您可以使用它在发送事件时重建被包含的内容: 这是一个jsFiddle演示其工作原理:http : //jsfiddle.net/robianmcd/Z

  • 问题内容: 我有一些自定义验证代码,其中包括$ formatter。(为了正确起见,我将货币以便士存储,但以磅为便士显示。) 如果用户在输入中键入“ 10”(这是一个有效值),则输入移至下一个字段后,输入仍显示“ 10”。 我希望它显示10.00以保持一致性。 如果模型将值更改为1000,那么格式化程序将使该字段显示为“ 10.00”。 我希望格式化程序在field.blur()上运行(只要输入有

  • 基本上,从接收一个单击事件,然后我需要多次更改HTML元素,问题是WebView只显示最后一次更改,这意味着渲染不是立即进行的。 问题:如何制作

  • 问题内容: 我正在使用SVG和angular.js进行大型项目,并且需要对svg指令模板的坚实支持。不幸的是,当angular渲染模板时,它将创建DOM节点,而不是SVG节点。我当前的解决方法是使用jquery.svg自己管理创建和删除节点,但是它受到限制。示例:http://plnkr.co/edit/Xk8wM3?p = preview 我想让指令成为实际的svg元素,而不是一些没有任何实际作

  • 问题内容: 我在程序开始时,根据数据库中的某些内容,以编程方式在JScrollPane中添加了许多组件(JPanels,JLabels等)。 似乎对于GUI(?)而言,此过程太快了,因此JScrollPane并不总是正确更新,即,即使内部JPanel大于可见区域,滚动条也不可见。 调整窗口大小(JFrame)可以解决此问题,因为我认为Java在调整组件大小时会重新打印它们。 作为测试,我添加了一个

  • 问题内容: 即使dataSource中的数据未更改,是否也可以强制重新渲染ListView?我的应用程序中的选项卡栏中有一个ListView,我希望每次选择该选项卡时都重新绘制它,而不管数据是相同还是已更改。 我尝试使用参数,但这没有帮助。任何帮助将非常感激 问题答案: 因此,据我所知,您的用例是由于更改而重新呈现ListView的所有行。我不知道是什么,要由您确定,但是我会用它来解释我的答案: