Angularjs 工厂里的角度变量?
在Angular应用程序中,我有几个对WebAPI服务的调用 第一个调用调用call1,应该确定变量的真/假值 所以我有这个Angularjs 工厂里的角度变量?,angularjs,Angularjs,在Angular应用程序中,我有几个对WebAPI服务的调用 第一个调用调用call1,应该确定变量的真/假值 所以我有这个 vm.call1.$promise.then(function (data) { $rootScope.variable1 = data.variable; }); 该变量将在我拥有的工厂内使用 myApp.factory('myStore', function ($http, $q, $rootScope) { var showAll = $rootS
vm.call1.$promise.then(function (data) {
$rootScope.variable1 = data.variable;
});
该变量将在我拥有的工厂内使用
myApp.factory('myStore', function ($http, $q, $rootScope) {
var showAll = $rootScope.variable1;
var get = function () {
if (showAll) {
//do this
} else {
//do this
}
};
return {
get: get
};
});
我的问题是,上面的工厂是在pageload上加载的,并且在承诺之前加载的,因此该值是未定义的
承诺完成后,我如何才能将值转移到我的工厂?无rootscope示例:您可以手动设置showAll标志:
vm.call1.$promise.then(function (data) {
myStore.setShowAll(data.variable);
});
在工厂里:
myApp.factory('myStore', function ($http, $q) {
var showAll = 'true or false to be a default';
var get = function () {
if (showAll) {
//do this
} else {
//do this
}
};
var setShowAll = function(value) {
showAll = value;
};
return {
get: get,
setShowAll: setShowAll
};
});
Rootscope示例:如果出于某种原因确实需要使用$Rootscope,则只需在获取$Rootscope值时检查$Rootscope值,就不必将该值存储在变量包中
myApp.factory('myStore', function ($http, $q, $rootScope) {
var get = function () {
if ($rootScope.variable1) {
//do this
} else {
//do this
}
};
return {
get: get
};
});
无rootscope示例:您可以手动设置showAll标志:
vm.call1.$promise.then(function (data) {
myStore.setShowAll(data.variable);
});
在工厂里:
myApp.factory('myStore', function ($http, $q) {
var showAll = 'true or false to be a default';
var get = function () {
if (showAll) {
//do this
} else {
//do this
}
};
var setShowAll = function(value) {
showAll = value;
};
return {
get: get,
setShowAll: setShowAll
};
});
Rootscope示例:如果出于某种原因确实需要使用$Rootscope,则只需在获取$Rootscope值时检查$Rootscope值,就不必将该值存储在变量包中
myApp.factory('myStore', function ($http, $q, $rootScope) {
var get = function () {
if ($rootScope.variable1) {
//do this
} else {
//do this
}
};
return {
get: get
};
});
在$rootScope.variable1上添加$watch,或将工厂调用放在$promise内。在$rootScope.variable1上添加$watch,或将工厂调用放在$promise.Spot内!非常感谢!:)完全正确非常感谢!:)