Angular JS - 不是一个函数

时间:2017-03-15 04:50:43

标签: angularjs

我在controller.js中遇到错误

controller.js

java.lang.NoSuchMethodError: No virtual method zzTt()Z in class        Lcom/google/firebase/FirebaseApp; or its super classes (declaration of 'com.google.firebase.FirebaseApp' appears in /data/app/com.example.dhrumit.google_maps-1/split_lib_dependencies_apk.apk:classes7.dex)
                                                                                               **at com.google.firebase.database.FirebaseDatabase.getInstance(Unknown Source)
                                                                                     at com.google.firebase.database.FirebaseDatabase.getInstance(Unknown Source)**
                                                                                     at com.example.dhrumit.google_maps.MapsActivity.onCreate(MapsActivity.java:35)
                                                                                     at android.app.Activity.performCreate(Activity.java:6033)
                                                                                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
                                                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                                                                                     at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                                                     at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                                     at android.os.Looper.loop(Looper.java:135)
                                                                                     at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                                                     at java.lang.reflect.Method.invoke(Method.java:372)
                                                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
                                                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)

factory.js

angular.module('myApp', ['ngRoute', 'ui.router']).controller('authCtl', ["$scope", "$rootScope", "loginService", function($scope, $rootScope, loginService) {
  $rootScope.bodyClass = "focusedform";
  $scope.submitForm = function() {
    loginService.userAuth($scope.username, $scope.password);
  }
}]);

enter image description here

1 个答案:

答案 0 :(得分:5)

你没有在工厂归还你的物品。

您必须将您的方法变量附加到对象中并从工厂返回,以便从控制器进行访问。

试试这个

angular.module('warApp').factory('loginService', ["$http", "$q", function($http, $q) {
  var userFactory = {};
  userFactory.userAuth = function(username, password) {
    console.log(username + '' + password);
  };
  return userFactory;
}]);

或尝试这样以获得更好的视图

angular.module('warApp').factory('loginService', ["$http", "$q", function($http, $q) {
  var userFactory = {
    userAuth: userAuth
  }
  return userFactory;
  function userAuth(username, password) {
    console.log(username + '' + password);
  }
}]);