3

PhoneGap 3.0 および AngularJS 1.2 を使用する Windows Phone 7.1 エミュレーターで、これが機能しないのはなぜですか。

angulargap.controller('HomeController', ['$scope', '$routeParams', '$location',
function ($scope, $routeParams, $location) {
    $scope.$routeParams = $routeParams;
    $scope.$location = $location;
    $scope.message = "AngularJS!";
}]);

エラーメッセージ:

ERROR:Error: [$injector:cdep] Circular dependency found: 
http://errors.angularjs.org/1.2.0-rc.2/$injector/cdep?p0=

これが機能している間:

angulargap.controller('HomeController', ['$scope', '$routeParams',
function ($scope, $routeParams) {
    $scope.$routeParams = $routeParams;
    $scope.message = "AngularJS!";
}]);

この特定のシナリオで $location サービスを挿入すると何が問題になるのでしょうか? デスクトップ ブラウザの Chrome と Internet Explorer では、すべてうまく機能します。ただし、Windows Phone 7 デバイス エミュレーターや物理デバイス自体では機能しません。

4

1 に答える 1

3

わかりました... AngularJS/PhoneGap/WindowsPhone の組み合わせにはかなりの問題があります。これはhttps://github.com/angular/angular.js/issues/2303?source=cc#issuecomment-20770025によって解決されました。

基本的に、Windows phone は単一のスラッシュで奇妙なプロトコル プレフィックスを使用するため(x-wmapp0:/)、 $location 初期化子が異常になり、エラーとはまったく関係のない、この奇妙なエラー メッセージで自分自身をシームレスに公開するエラーがトリガーされます :-(

この修正に関するプルリクエストを GitHub の AngularJS リポジトリに提案しようとしています。

于 2013-10-14T21:53:50.737 に答える