$rootScope.getPricesData = function (typ) {
var data = {
type: typ
}
$http({
url: '...',
method: 'POST',
data: data
}).then(function (res) {
$rootScope.pricesData = res.data;
console.log(res);
})
}
它的作品很好,并且html
<div ng-init="getPricesData('template')">info template</div>
<div ng-init="getPricesData('subscription_month')">info subscription_month</div>
我在控制台中看到这两个div有关订阅(不是模板和订阅)的信息,我正确地看到了这个数据,并且该函数被调用了两次(用于模板和订阅)。
我认为范围覆盖(但我不知道如何解决) 请求帮助
答案 0 :(得分:1)
您可以使用Javascript ternary operator来处理方案。
$rootScope.getPricesData = function (typ) {
var data = {
type: typ
}
$http({
url: '...',
method: 'POST',
data: data
}).then(function (res) {
if(typ == 'template') ? $scope.templatePricesData = res.data : $scope.subscriptionPricesData = res.data;
})
}
您可以创建一个空对象,然后在成功响应时将响应数据分配到对象的相应属性中。
$scope.resData = {};
$rootScope.getPricesData = function (typ) {
var data = {
type: typ
}
$http({
url: '...',
method: 'POST',
data: data
}).then(function (res) {
$scope.resData[typ] = res.data;
})
}
答案 1 :(得分:0)
我认为这总会覆盖。一种可能的解决方案是让你的$ rootScope成为对象,这样就可以像 $ rootScope.pricesData [typ]