我使用Pannellum构建了一个全景查看器,我将选项传递到默认配置中以生成如此的视图;
var panoOptionDefaults = {
type: "equirectangular",
haov: imageXRes,
vaov :imageYRes,
minPitch : 0,
maxPitch : 0,
minYaw : (imageYRes * 2) * -1,
maxYaw : (imageYRes * 2),
autoLoad : true,
mouseZoom : false,
showControls : false,
hfov:imageXRes * 2, // Zoom - positive number zooms out / negative number zooms in
panorama: $scope.currentProfile.panorama.image, //value in json, returns error
hotSpotDebug : false,
hotSpots: [ // Dynamic Value
{
"pitch": -9.0,
"yaw": -1.0,
"cssClass": "custom-hotspot",
"createTooltipFunc": hotspot,
"createTooltipArgs": "Radios for Communication"
}
]
}
我想要做的就是拥有“panaroma'来自我的response.data获取方法。我已经编写了一个有效的角度服务,它根据一个属性和一个get方法返回一个profile.json,该方法为这里有各个数据的每个指令返回这个json结果;
$scope.currentProfile = {}; / /creates object
profiles.getProfile().then(function(response){
$scope.currentProfile = response.data; //returns data and assigns to $scope
});
答案 0 :(得分:0)
由于您的答案仍然缺少一些关键细节(比如何时使用panoOptionsDefault
对象),因此确实有点难以确定,但我怀疑您的问题是由于JavaScript的异步特性造成的。 / p>
分配panorama
的行上的注释表示“返回错误”,但您没有指定错误消息。我怀疑发生了错误,因为尚未分配$scope.currentProfile
的值。如果是这样,您需要等到在使用panoOptionsDefault
之前检索完该数据的AJAX调用。
所以你需要做这样的事情:
profiles.getProfile().then(function(response){
$scope.currentProfile = response.data;
// Now you can use panoOptionsDefault
SomeCall(panoOptionsDefault);
});