gpt4 book ai didi

angularjs - 工厂对象上的 $watch 问题

转载 作者:行者123 更新时间:2023-12-05 01:00:41 26 4
gpt4 key购买 nike

我有一个变量 socialRegisterFactory.pages在我的工厂中设置,一旦来自 FaceBook 的信息完全加载就会更新。我试图在我的 Controller 中 $watch 这个变量,以便在加载信息时以及当该变量从 false 变为 true 时,watch 函数会相应地更新范围。我已经在 Controller 中注销了工厂的变量,它确实显示正确,但范围没有正确更新。我的 $watch 函数有问题吗?

我的 Controller :

    $scope.pagesLoaded = false;

$scope.$watch(socialRegisterFactory.pages, function(newVal, oldVal){
if (socialRegisterFactory.pages === true) {
alert("true!");
$scope.pagesLoaded = true;
}
}, true);

我的工厂:
    var socialRegisterFactory ={
pages: false,
getAvailablePages: function($scope){
return $http.get(settings.urlBase+'social/facebook/pages')
.then(function(resp) {
socialRegisterFactory.pages = true;
angular.copy(resp.data.data, socialRegisterFactory.fbPages);
//$scope.fbPages = socialRegisterFactory.fbPages;
return socialRegisterFactory.fbPages;
});
},

最佳答案

$scope.$watch 的第一个参数可以是字符串或函数。

Angular docs here .

不确定这是否适用于您的特定情况,但是嘿。

例如

$scope.$watch(
function() { return socialRegisterFactory.pages; },
function(newVal, oldVal) {
if (socialRegisterFactory.pages === true) {
alert("true!");
$scope.pagesLoaded = true;
}
},
true
);

关于angularjs - 工厂对象上的 $watch 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29266431/

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