这个问题让我发疯,我几个小时都找不到任何解决方案。我相信你们可以帮助我。
我的controller.js
文件中有控制器,其中包含有关我的页面的所有信息。我在这个页面中有一个按钮,它在一个新的弹出窗口中打开同一页面。一旦用户点击弹出页面上的按钮,我试图在主窗口中调用一个函数。
我的controller.js
:
.controller('rackLayoutController', ['$scope', 'appService', 'rackLayoutService', 'siteService', '$location', '$log', '$sanitize', '$window', '$timeout',
function ($scope, appService, rackLayoutService, siteService, $location, $log, $window, $timeout) {
$( window ).ready(function() {
function refreshPopout(){
$(window).ready(function(){
console.log("readyyyyy");
setTimeout(function () {
window.location.reload();
}, 1000);
});
}
});
$scope.$on('updateRack', function () {
console.log("BROAD 1");
window.opener.refreshPopout();
})
当用户点击按钮时,我正在调用broadcast updateRack
并且正在打印我的log
,这很好,但功能无效。
我收到错误:
TypeError: Object [object global] has no method 'refreshPopout'
由于
答案 0 :(得分:1)
$( window ).ready(function() {
function refreshPopout(){
当你调用它时,refreshPopout不是全局的。
尝试:
$( window ).ready(function() {
window.refreshPopout = function(){