正如 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;
}