angle.js tidak berfungsi tag ng-view di PhoneGap

Saya mencoba menggunakan angle.js dengan PhoneGap. Ini berfungsi dengan baik di browser chrome. Tetapi tidak berfungsi
di tag ng-view. Dan modul sudut tidak dipanggil ketika saya menjalankannya di simulator. Apakah kamu punya ide?

Kode saya seperti ini.

indeks.html

   <body>
        <div class="app" >
            <h1>Welcome!</h1>
            <div id="deviceready">
                            <div ng-view></div>
            </div>
        </div>

        <script type="text/javascript" src="cordova-2.0.0.js"></script>
        <script type="text/javascript" src="js/index.js"></script>


        <script type="text/javascript">
            app.initialize();
        </script>
                <script src="http:////cdnjs.cloudflare.com/ajax/libs/zepto/1.0rc1/zepto.min.js"></script>
                <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js"> </script>
                <script type="text/javascript" src="js/router.js"></script>

    </body>

indeks.js

var app = {
    initialize: function() {
        this.bind();
    },
    bind: function() {
        document.addEventListener('deviceready', this.deviceready, false);
    },
    deviceready: function() {
        // note that this is an event handler so the scope is that of the event
        // so we need to call app.report(), and not this.report()
        app.report('deviceready');
    },
    report: function(id) { 
        console.log("report:" + id);
        // hide the .pending <p> and show the .complete <p>
        document.querySelector('#' + id + ' .pending').className += ' hide';
        var completeElem = document.querySelector('#' + id + ' .complete');
        completeElem.className = completeElem.className.split('hide').join('');
    }
};

router.js

angular.module("app",[]).
    config(["$routeProvider",function($routeProvider){
        $routeProvider.when("/",{templateUrl:"templates/home.html"});
    }]);

person nobinobiru    schedule 15.09.2012    source sumber


Jawaban (3)


Coba metode bootstrap api untuk memulai aplikasi secara manual di deviceReady. sesuatu seperti:

function onDeviceReady() {
    ...
    angular.bootstrap(document, ['ngView']);
    ...
}

document.addEventListener("deviceready", onDeviceReady, true);

http://docs.angularjs.org/api/angular.bootstrap

person Dve    schedule 30.09.2012
comment
Masalah yang sama, Menambahkan baris juga. tapi tetap saja Ripple - browser Nexus macet. tidak ada yang datang. Ada lagi yang perlu saya lakukan? - person Keval Patel; 13.03.2016

Coba unduh file sudutjs dan zepto dari server ini dan letakkan di dalam aplikasi.

person mccraveiro    schedule 28.09.2012

Saya mungkin hanya menghabiskan 5 jam untuk mencoba mengatasi masalah serupa. Ternyata phone-gap / cca karena alasan tertentu menambahkan app-id ke bagian hash dari URL. Oleh karena itu, rutenya tidak cocok dan pengguna terus-menerus diteruskan kembali melalui panggilan $routeProvider.otherwise().

(Saya mengetahui bahwa masalah umum dengan CCA adalah bahkan sudah diperbaiki hanya saja belum dirilis!)

Sementara itu, jika Anda mengalami masalah dalam membuat ngRoute berfungsi dengan alat chrome seluler dan Phonegap, coba tambahkan dua grup pencocokan opsional ke rute Anda sebagai solusinya. Misalnya ambil contoh ini:

$routeProvider.when('/', { templateUrl: 'templates/home.html', controller: 'HomeCtrl' });
$routeProvider.when('/some-page', { templateUrl: 'templates/some-page.html', controller: 'SomePageCtrl' });
$routeProvider.when('/another-page', { templateUrl: 'templates/another-page.html', controller: 'AnotherPageCtrl' });
$routeProvider.otherwise({ redirectTo: '/' });

Rute tidak akan cocok dengan bit tambahan yang ditambahkan ke URL tetapi Anda dapat mengatasinya seperti ini:

$routeProvider.when('/:a?/:b?/some-page', { templateUrl: 'templates/some-page.html', controller: 'SomePageCtrl' });
$routeProvider.when('/:a?/:b?/another-page', { templateUrl: 'templates/another-page.html', controller: 'AnotherPageCtrl' });
$routeProvider.when('/:a?/:b?/', { templateUrl: 'templates/home.html', controller: 'HomeCtrl' });
$routeProvider.otherwise({ redirectTo: '/' });

Perhatikan dua grup opsional yang saya tambahkan. Perhatikan juga bahwa rute dasar berada di urutan terakhir - jika tidak, rute tersebut akan cocok dengan semua/sebagian besar rute jika URL dibuat dengan benar!

person kzar    schedule 27.03.2014