我正在开发一个基于 PhoneGap 3.5
和 Angular.js
的项目。我尝试将 Angular New Window InAppBrowser 与以下 Controller 一起使用:
var gWindow;
window.loadWindow = function(website) {
gWindow = window.open(website, '_blank', 'location=no');
gWindow.addEventListener('loadstart', function(event) {
//alert('start: ' + event.url);
});
gWindow.addEventListener('loadstop', fLoadStop);
gWindow.addEventListener('loaderror', function(event) {
//alert('error: ' + event.message);
});
gWindow.addEventListener('exit', fExit);
}
window.fLoadStop = function(event) {
var url = event.url;
var filename = url.substring(url.lastIndexOf('/')+1);
if(filename == "closeinappbrowser.html"){
gWindow.close();
}
}
window.fExit = function(event) {
gWindow.removeEventListener('loadstop', fLoadStop);
gWindow.removeEventListener('exit', fExit);
}
但我不知道为什么下面的 Controller 不能在新窗口 appbrowser 中工作,但在 dekstop 浏览器中工作
newsappblank = angular.module("newsappblank", ["ngRoute", "newsControllersblank", "newsServices", "ngSanitize", "ui.bootstrap", "slugifier", "bn-lazy"]);
newsappblank.config([
"$routeProvider", function($routeProvider) {
return $routeProvider.when("/news/:newsId", {
templateUrl: "partials/news-detail.html",
controller: "NewsDetailCtrl"
}).otherwise({
redirectTo: "../closeinappbrowser.html"
});
}
]);
newsControllersblank = angular.module("newsControllersblank", []);
newsControllersblank.controller("NewsDetailCtrl", [
"$scope", "$rootScope", "$location", "$anchorScroll", "$http", "$routeParams", function($scope, $rootScope, $location, $anchorScroll, $http, $routeParams) {
$rootScope.middlebar = true;
$rootScope.loadbar = false;
alert(1);
return $scope.go = function(path) {
if (path !== '/news/') {
$location.path(path);
$location.hash("top");
return $anchorScroll();
}
};
}
]);
最佳答案
我遇到了问题,Phonegap Inapp Browser Not Support Jquery Load to Load Angular Template,所以解决方案是我将 html 模板写入变量并调用它。
关于javascript - 手机间隙 : Angular Controller does not work in new window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24603371/