angularjs - 如何在 UI 引起的范围变量更改时重新加载指令的模板
问题描述
我一直在尝试为模式创建指令,但我发现一旦指令模板初始化,通过 UI 进行的进一步更改将不会导致它更新。这是每次都显示的第一个缓存版本。
这是我的指令代码:
'use strict';
angular.module('sample')
.directive('modalPage', function ($timeout) {
return {
restrict: 'E',
templateUrl: 'directives/sampleTemplate.html',
scope: {
data: '='
},
link: build
};
function build(scope, element, attrs) {
scope.initData = function () {
// does something that changes the value of var
};
scope.$watch('data', function (value) {
if (value) {
scope.initData();
}
}, true);
}
});
我的模板 sampleTemplate.html 看起来像这样:
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-body" style="padding:5px!important;">
<div class="card card-6">
<div class="card-heading">
<h2 class="title">{{ var }}</h2>
</div>
<div class="card-footer"></div>
</div>
</div>
</div>
</div>
该指令首先会渲染模板页面(当 var 的值没有改变时),然后 UI 交互导致数据发生变化,调用 initData 并为 var 分配一个新值。模态仍然显示 var 的旧值。
我尝试使用 $compile() 并为更改 var 设置超时,但都没有奏效。之前的所有讨论也没有奏效。任何帮助表示赞赏。先感谢您!
解决方案
推荐阅读
- python - 如何在节点应用程序的 Heroku 环境中添加 python 2.7?
- ansible - jinja2 (Ansible) 的“任何”和“所有”过滤器
- django - 当 Django 文件对象移出函数范围时,它正在关闭 - Python3
- docker - 升级后 Docker 不拾取主机 DNS 配置
- xml - 如何在表单视图中使用单个标签在一行上显示两个字段?
- python-3.x - 使用 FancyArrowPatch 绘制穿过选定点的箭头
- c - 一个应该接受字符数组作为输入的函数如何接受传递给它的数组第一个元素的内存地址?
- symfony - 如何从 $_POST 传递单个参数?
- python - Python 3 在不改变范围的情况下获取布尔变量的变量名?
- reactjs - 如何使用最新的 Xcode 版本在 Visual Studio 应用中心构建一个 React Native 应用