gpt4 book ai didi

javascript - $scope.$on 导致 Angular 静默失败

转载 作者:行者123 更新时间:2023-11-30 15:34:12 25 4
gpt4 key购买 nike

问题似乎出在名为EventFactory 的工厂中。工厂中的两个语句是问题所在。它们是:

        $scope.$on('event:updateStuff', function (event, data) {
myObj = data;
});

$scope.$on('event:updateOtherStuff', function (event, data) {
myArray.push(data);
});

这些语句以前工作正常,现在我无法让页面呈现,除非我注释掉整个 $scope.$on。自从我上次成功运行该应用程序以来,我没有进行任何代码更改,因此这种行为非常出乎意料。控制台上没有出现错误消息。

在注释掉内部语句的同时恢复 $scope.$on 并不能解决问题。我已将它们注释掉,但页面仍然无法呈现。

这会导致页面失败:

        $scope.$on('event:updateStuff', function (event, data) {
myObj = data;
});

$scope.$on('event:updateOtherStuff', function (event, data) {
myArray.push(data);
});

这也会导致页面失败:

        $scope.$on('event:updateStuff', function (event, data) {
/*myObj = data;*/
});

$scope.$on('event:updateOtherStuff', function (event, data) {
/*myArray.push(data);*/
});

只有注释掉整个 $scope.$on 页面才会加载:

        //$scope.$on('event:updateStuff', function (event, data) {
//myObj = data;
//});

//$scope.$on('event:updateOtherStuff', function (event, data) {
//myArray.push(data);
//});

最佳答案

服务通常不能像 Controller 那样访问$scope。充其量,它可以将一个作为参数传递给它的方法,或者它可以注入(inject) $rootScope 服务。

最简单的可能只是确保您在工厂/服务中注入(inject)和引用 $rootScope,而不是 $scope

关于javascript - $scope.$on 导致 Angular 静默失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41816566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com