我正在使用 ionic 创建一个应用程序,其中使用 iframe 显示 URL。
这是 HTML 代码:
<iframe id="myFrame" width="100%" height={{iframeHeight}}>
这是角度js:
$scope.iframeHeight = window.innerHeight;
document.getElementById("myFrame").src = value['url'];
一切正常,但是当我从后端在网站上进行更改并刷新应用程序时,新的更改不会出现在应用程序中。
您在代码中所做的事情不是有效的方法。您正在使用本机方法操作 DOM,该方法不会运行摘要循环,您需要通过以下方式手动运行它$scope.$apply()
。这将解决你的问题,但通常你不应该从控制器进行 DOM 操作,这被认为是不好的做法。相反,我建议您使用角度双向绑定功能。在范围范围变量中分配 url 并将其添加到 iframe 标记上使用ng-src="{{url}}"
以便src
URL 将由 Angular 更新并随着 url 的更新而更新iframe
将从中加载内容src
网址在里面。
HTML
<iframe id="myFrame" width="100%" ng-src="{{url}}" height={{iframeHeight}}>
Code
$scope.url = "http://example.com"
当您更改控制器中的范围变量时src
iframe 也会发生变化并且iframe
将重新加载内容。
Update
要解决缓存问题,您需要将当前日期时间附加到您的 url 中,这样每次都会创建一个新的 URL,并且浏览器不会缓存它。就像是$scope.url = "http://example.com?dummyVar="+ (new Date()).getTime()
通过使用它,它永远不会损害您当前的行为,只需要附加dummyVar
当前时间值始终是唯一的。
$scope.url = "http://example.com?dummyVar="+ (new Date()).getTime()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)