我正在使用角度ui-router,需要根据父(body
)范围内的变量为给定状态显示不同的模板。但是,当我添加此$scope.data
条件时,它不会触发。我甚至没有得到console.log()
或任何网址更改。 :(
$stateProvider.state('map1', {
url: "/content/sectionI",
templateProvider: function($scope, $http, $stateParams) {
console.log("Wowie!",$scope.data);
if($scope.data.Section_I_Part_1_Complete == "0")
{
return $http({
method: 'GET',
url: 'http://example.com/contentMore',
params: {
request: "Section_I_Part_1_Complete",
part: "1"
}
}).then(function successCallback(html) {
return html.data;
});
}
else
{
return $http({
method: 'GET',
url: 'http://example.com/contentMore',
params: {
request: "Section_I_Unlocked",
part: "map"
}
}).then(function successCallback(html) {
return html.data;
});
}
},
controller: function($scope) {
$scope.activeSection.activeSection = "notNone";
}
})
我该怎么做才能让模板根据父作用域中变量的值返回?
答案 0 :(得分:1)
只需使用服务来存储数据并注入该服务。
templateProvider: function(myDataService) {
var part = myDataService.Section_I_Part_1_Complete == "0" ? 1 : 'map';
return $http.get('http://example.com/contentMore', {
params: {
request: "Section_I_Part_1_Complete",
part: part
}
}).then(function(response) {
return response.data;
});
}