Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
angularjs:强制重新渲染/完全刷新指令模板_Angularjs_Angularjs Directive - Fatal编程技术网

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

angularjs:强制重新渲染/完全刷新指令模板,angularjs,angularjs-directive,Angularjs,Angularjs Directive,这是因为主题外的问题而进行的改写: 我写了一个下拉指令。我将该指令作为一种工作流使用了两次。第一个下拉列表通过更改操作触发第二个下拉列表模型的刷新。尽管模型可以正确更新,但视图不能正确更新。在第一个下拉列表中选择项目的次数第二个下拉列表显示旧项目和新项目,即使角度模型的console.log()正确 视图具有无限递归性。使用id为ng/模板的ng include进行递归: 显示模板代码的初始plunkr如下: 我不明白为什么视图没有完全刷新 待更新 亲切问候,, alex通常我使用的是ui i

这是因为主题外的问题而进行的改写:

我写了一个下拉指令。我将该指令作为一种工作流使用了两次。第一个下拉列表通过更改操作触发第二个下拉列表模型的刷新。尽管模型可以正确更新,但视图不能正确更新。在第一个下拉列表中选择项目的次数第二个下拉列表显示旧项目和新项目,即使角度模型的console.log()正确

视图具有无限递归性。使用id为ng/模板的ng include进行递归:

显示模板代码的初始plunkr如下:

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

待更新

亲切问候,,
alex

通常我使用的是ui if指令,这基本上是angularui团队的if语句,所以我将它放在元素上,这也是指令,并说:

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


这样,如果myData.prop发生更改,或者我短暂地将其设置为null,然后重新应用它,它将删除并将我的html指令重新转移到DOM中,从而使它再次评估我的指令。

您能提供一个Plunker/JSFIDLE脚本吗?我无法如此快速地在Plunker中工作。。。但是基本代码在那里。。。假设指令vissible是第二个下拉列表,在第一个下拉列表的状态下更新。。。任何时候它的模型发生变化,模型都是正确的,但是渲染是错误的。我认为这是一个无限嵌套的问题。这就像普通的角度代码。它看起来会像这样…ng if在强制重新渲染方面类似吗?这可能是缓存问题,因为我在指令中使用了ng/template?我不确定ng if是否会像ui if那样工作。Angular可能以不同的方式实现了它们。基本上,ui if是有效的,因为它将其导出到阴影dom中,然后将其编译回来,从而使其重新呈现。只有当模板自身正在更改时,缓存才是一个问题,就像我在sublime text 2中对模板进行一些编辑一样。有时,它会缓存模板,我必须在新选项卡中仅打开该模板,然后按住shift键并刷新让它更新。如果模板中的数据没有更新,通常意味着它以某种方式丢失了对角度中原始对象的引用。如果您覆盖了原始引用,或者您正在以某种方式创建一个新的作用域,但没有意识到它,则可能会发生这种情况。已解决:ng if也在做这件事。但错误在于ng include和ng repeat实际上在同一行中。ng include本身不是决定性的,只有ng开关是决定性的。