Lau*_*n F 4 factory controller watch angularjs
我的socialRegisterFactory.pages工厂中设置了一个变量,一旦FaceBook的信息完全加载就会更新.我正在尝试在我的控制器中观察这个变量,以便在加载信息时以及当该变量从false变为true时,watch函数会相应地更新范围.我已经在控制器中注销了工厂的变量,它确实显示正确,但范围没有正确更新.我的$ watch功能有问题吗?
我的控制器:
$scope.pagesLoaded = false;
$scope.$watch(socialRegisterFactory.pages, function(newVal, oldVal){
if (socialRegisterFactory.pages === true) {
alert("true!");
$scope.pagesLoaded = true;
}
}, true);
Run Code Online (Sandbox Code Playgroud)
我的工厂:
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;
});
},
Run Code Online (Sandbox Code Playgroud)
$ scope.$ watch的第一个参数可以是字符串或函数.
不确定这会在你的具体情况下有效,但是嘿.
例如
$scope.$watch(
function() { return socialRegisterFactory.pages; },
function(newVal, oldVal) {
if (socialRegisterFactory.pages === true) {
alert("true!");
$scope.pagesLoaded = true;
}
},
true
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4143 次 |
| 最近记录: |