我开发了一个包含多个页面的Web应用程序,并且我实现了带有角度和放大器的单页(Page-1)打字稿我也用过谷歌地图。 当我第一次访问该页面时,它会挂起并显示没有错误。此错误与任何浏览器或任何访问都不一致。 例如,如果我使用谷歌浏览器并首先访问此页面它可能工作或它可能无法工作,或者如果我切换到任何其他页面并返回到此页面它可能工作或它可能不工作。 所以我的结论是,这不是页面访问或浏览器都不具体的。
我在我的打字稿文件中实现了一个控制器,并在其中使用了范围界面,如下面的代码所示。
在此行console.log('Before scope sleep.');
后面的代码中,其余行不会执行。
export interface IMACScope extends angular.IScope
{
map: any;
Sleep: any;
}
export class TempController
{
public static $inject: any[] = ['$scope', 'TestService', 'uiGmapGoogleMapApi', 'ngDialog', '$http', '$sce', '$timeout' ];
constructor(
private $scope: IMACScope,
private leadService: Service.LeadService,
private uiGmapGoogleMapApi: any,
private ngDialog: angular.dialog.IDialogService,
private $http: angular.IHttpService,
private $sce: angular.ISCEService,
private $timeout: angular.ITimeoutService
) {
console.log('Before GmapGoogleMapApi.');
uiGmapGoogleMapApi.then(maps => {
$scope.drawingManagerOptions = {
drawingMode: null,
drawingControl: true,
drawingControlOptions: {
position: uiGmapGoogleMapApi.$$state.value.ControlPosition.TOP_CENTER,
drawingModes: []
},
polygonOptions: {
editable: true,
strokeWeight: 3,
clickable: true,
}
};
$scope.mapLoaded = true;
});
console.log('Before scope sleep.');
$scope.Sleep = function (milliseconds = 3500) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds) {
break;
}
}
};
console.log('After scope sleep.');
}
}
我在我的应用中使用以下版本