2016-04-12 21 views
0

Bu sorunun yaklaşık yüz kez sorulduğunu biliyorum. Ve birçok çözümü denedim. Ne yazık ki hiç kimse benim için çalıştı.Onsen [ng: areq] Argüman '' bir fonksiyon değil, undefined var

Onsen ve AngularJS ile programlama yapıyorum.

HTML:

<ons-template id="signin.html"> 
    <ons-dialog var="dialog">    
     <ons-toolbar> 
      <div class="center">Log In</div> 
     </ons-toolbar> 

     <div class="login-form" ng-app="SignIn" ng-controller="SignCtrl"> 
      <input type="email" class="text-input--underbar" placeholder="Email" value=""> 
      <input type="password" class="text-input--underbar" placeholder="Password" value=""> 
      <br><br> 
      <ons-button modifier="large" class="login-button">Log In</ons-button> 
      <br> 
      <ons-button modifier="quiet" class="forgot-password">Forgot password?</ons-button> 
      <ons-button modifier="quiet" class="forgot-password" ng-click="showSignUp()">Not a member?</ons-button> 
     </div> 

    </ons-dialog> 
</ons-template> 

JavaScipt'i (js/signctrl.js):

(function(angular){ 
    // init functions 
    'use strict'; 

    var app = angular.module('SignIn', []); 
    app.controller('SignCtrl', function($scope) { 
     $scope.showSignUp = function() {  
      alert("foo!"); 
      ons.createDialog('signup.html').then(function(dialog) { dialog.show(); }); 
     }; 
    }); 

})(window.angular); 

Ve dahil dosyaları:

<script src="components/loader.js"></script> 
<link rel="stylesheet" href="components/loader.css"> 
<link rel="stylesheet" href="css/style.css"> 
<link rel="stylesheet" href="css/signin.css"> 
<link rel="stylesheet" href="css/signup.css"> 
<link rel="stylesheet" href="css/locations.css"> 

<link rel="stylesheet" href="lib/onsen/css/onsenui.css"> 
<link rel="stylesheet" href="components/monaca-onsenui/css/onsen-css-components-sunshine-theme.css"> 
<script src="lib/onsen/js/angular/angular.js"></script> 
<script src="lib/onsen/js/onsenui.js"></script> 
<script src="js/signctrl.js"></script> 

Ve ons.bootstrap() çağrılır başlangıç ​​(js/signctrl.js'yi dahil etmeden önce).

Bana yardım edip yardımınız için teşekkür ederseniz çok mutlu olurdum.

Not: Gerçek tam hata:

Error: [ng:areq] Argument 'SignCtrl' is not a function, got undefined 
http://errors.angularjs.org/1.4.3/ng/areq?p0=SignCtrl&p1=not%20a%20function%2C%20got%20undefined 
    at file:///data/data/mobi.monaca.debugger/files/projects/cloud/570c898afd17349b6c3d57a4/www/components/loader.js:1460:4931 
    at assertArg (file:///data/data/mobi.monaca.debugger/files/projects/cloud/570c898afd17349b6c3d57a4/www/components/loader.js:1460:18360) 
    at assertArgFn (file:///data/data/mobi.monaca.debugger/files/projects/cloud/570c898afd17349b6c3d57a4/www/components/loader.js:1460:18562) 
    at file:///data/data/mobi.monaca.debugger/files/projects/cloud/570c898afd17349b6c3d57a4/www/components/loader.js:1462:20613 
    at setupControllers (file:///data/data/mobi.monaca.debugger/files/projects/cloud/570c898afd17349b6c3d57a4/www/components/loader.js:1461:27741) 
    at nodeLinkFn (file:///data/data/mobi.monaca.debugger/files/projects/cloud/570c898afd17349b6c3d57a4/www/components/loader.js:1461:28989) 
    at compositeLinkFn (file:///data/data/mobi.monaca.debugger/files/projects/cloud/570c898afd17349b6c3d57a4/www/components/loader.js:1461:21271) 
    at file:///data/data/mobi.monaca.debugger/files/projects/cloud/570c898afd17349b6c3d57a4/www/components/loader.js:1461:19821 
    at pre (file:///data/data/mobi.monaca.debugger/files/projects/cloud/570c898afd17349b6c3d57a4/www/components/loader.js:1474:25379) 
    at invokeLinkFn (file:///data/data/mobi.monaca.debugger/files/projects/cloud/570c898afd17349b6c3d57a4/www/components/loader.js:1462:13182) 
+0

Onsen ile aşina değilim, ama '' elemanları 'ng-app' ve 'ng-controller' içeren öğenin içinde olması gerekiyor mu? – Lex

+0

Önceden tanımlanmış öğelerdir. Onlar (benim durumumda) zorundalar. Yorumunuz için teşekkürler. – David

+0

Bu yüzden sordum - çünkü hepsi "ng-app" ve "ng-controller" içeren elemanın içinde değiller. – Lex

cevap

1

Muhtemelen bir zamanlama meselesi tam hata [ng:areq] Argument 'SignCtrl' is not a function, got undefined

PPS olduğunu. Denetleyiciyi içeren öğenin başlatılmasından önce denetleyiciye erişmeye çalışıyor. Bunu çözmek için, açtığınız kodun tamamını bir kez tamamen yükledikten sonra açısal kodunuzu ons.ready işlevine (see the docs) sarın. Örneğin

:

ons.ready(function() { 

    //Your angular code 

}) 

Ayrıca, sizin kontrolöre onsen modülü eklemeyi unutmuşum gibi görünüyor.

Sorununuzu çözdüğünü umuyoruz!

İlgili konular