我正在编写一个应用程序,它是Angular和jQuery的一部分。我通过在iFrame中加载jQuery内容来分离它们。
在某个事件(例如,单击ng)时,我需要刷新iFrame。我的控制器包含以下代码:
$scope.refreshIframe = function() { //refresh the iFrame with id "anIframe" };
而iFrame是:
<iframe id="anIframe" src="myUrl"></iframe>
正如Paulo
Scardine所说,正确的方法是通过指令,因为您不应该使用控制器来操纵DOM。
这样的事情可以做:
.directive('refreshable', [function () {
return {
restrict: 'A',
scope: {
refresh: "=refreshable"
},
link: function (scope, element, attr) {
var refreshMe = function () {
element.attr('src', element.attr('src'));
};
scope.$watch('refresh', function (newVal, oldVal) {
if (scope.refresh) {
scope.refresh = false;
refreshMe();
}
});
}
};
}])
然后可以这样使用:
<iframe refreshable="tab.refresh"></iframe>
和:
$scope.refreshIframe = function(){
$scope.tab.refresh = true;
}
问题内容: 我有一个文件,其中我在页面顶部显示外部页面(使用iframe),其他部分是写在文件中的html代码的输出。 HTML代码如下所示: 现在,我想以编程方式刷新页面而不刷新。 我的问题是我可以不刷新页面就刷新页面吗? 答案/提示将不胜感激。 问题答案: 该嵌在主HMTL页面(或在JSP)。因此,如果刷新页面,则肯定会再次加载iframe。 为了避免这种情况,我可以考虑以下两种选择: 使用A
问题内容: 我在iframe中使用ng-src时遇到问题。我需要这样做: 结果: 我知道问题是$ sce,它是XSS的保护,并且该链接需要添加到白名单中。因此,当我执行此操作时,它就起作用了。 我在控制器内部定义: 但是我不能那样做,因为我正在使用ng-repeat循环,所以链接是动态生成的。必须从数据库中读取它! 问题答案: 您可以改用过滤器: HTML: 其中,“ yourURL”是ifram
问题内容: 我有一个包含IFrame和一个Button的网页,一旦按下按钮,我需要刷新IFrame。如果可能的话,这可能吗?我搜索了,找不到任何答案。 问题答案:
问题内容: 所以…例如,我正在尝试将一个电子邮件“模板”引入iframe中,作为angularjs应用程序内用户的“预览”。iframe位于控制器区域内(我们称其为MainCtrl)。然后,用户将能够使用MainCtrl内提供的表单元素基于其输入来更新预览。举例来说,假设我们将模板拉入iframe的过程如下所示: 因此,在我们的index.html(angularjs应用)中,我们将具有绑定到{{
问题内容: 我正在使用AngularJS构建SPA,并与服务(JAVA)通信。 当用户发送其用户名/密码时,服务会同时发送回:Acces令牌和Refresh令牌。我正在尝试处理:如果收到状态为401的响应,请发送回刷新令牌,然后再次发送您的上一个请求。我试图通过包含$ http来做到这一点,但是angular不允许我在此拦截器中包含它。有什么方法可以使用我正在接收的响应参数来重新创建原始请求吗?
问题内容: 我有一个click事件发生在我的自定义指令范围之外,因此,我使用jQuery.click()侦听器并在我的范围内调用一个函数,而不是使用“ ng- click”属性,如下所示: close()是一个简单的函数,如下所示: 在我看来,我有一个绑定到isOpen的“ ng-show”元素,如下所示: 调试时,我发现正在调用close(),isOpen被更新为false,但是AngularJ