Javascript 无法在angularjs服务中获取警报

Javascript 无法在angularjs服务中获取警报,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,在第一次启动时,ctrl 但无法看到正在使用的警报 控制器应该调用服务,但它不调用 电话在这里 ctrl fun 我也试过了 User.save 或$scope.var=User.save 或 但这更糟,因为它甚至没有发出ctrl的警报 因为他可能正在使用控制器的作用域。您需要将用户工厂注入控制器,否则它将不会被实例化: $scope.click = function(User,$scope) { $window.alert("ctrl fun"); $sc

在第一次启动时,
ctrl

但无法看到正在使用的警报

控制器应该调用服务,但它不调用

电话在这里

ctrl fun
我也试过了

User.save

$scope.var=User.save

但这更糟,因为它甚至没有发出ctrl的警报


因为他可能正在使用控制器的作用域。

您需要将用户工厂注入控制器,否则它将不会被实例化:

  $scope.click = function(User,$scope) {
        $window.alert("ctrl fun");
        $scope.isClicked = !$scope.isClicked;
        $scope.caner.name = User.save;
      };
    });
app.controller('canerCtrl', function($scope,$window,User) {...}
关于服务调用,请确保没有在单击函数中定义其他用户变量$作用域和用户已在控制器中可用

app.controller('canerCtrl', function($scope,$window,User) {...}

但是,请记住,您从save函数返回的是一个承诺,而不是一个名称。

save:function(){$window.alert(“service saave”);但是不能从hereDid返回警报您记得将
$window
注入控制器吗?不,像这样save:function($window){$window.alert(“service saave”);返回$http.post(backendUrl+'/users',{user:service.user});};然后,您应该使用浏览器的调试器,在保存函数中设置断点,并检查是否调用了该函数,然后检查是否定义了
$window
。如果您对调试器不满意,可以使用控制台日志记录来检查函数调用和$window。使用
console.log('window:',typeof$window)
.i放入save:function(){$window.alert(“service saave”);console.log('winfdow:',typeof$window)返回$http.post(backendUrl+'/users',{user:service.user});但它没有出现在控制台bb中,但当我放入app.factory('user',function($http,$window){//injectables转到这里$window alert(“服务”);console.log('windowff:',typeof$window)它来了
app.controller('canerCtrl', function($scope,$window,User) {...}
$scope.click = function() {
    $scope.whatever = User.save();
}