2016-11-09 2 views
0

Mit Ionic v1 und zu versuchen, eine Funktion aufzurufen, aus einer Fabrik mit this oder self aber immer Fehlermeldung:Cant Call-Service-Methode in Angular Fabrik (mit Ionic)

Uncaught TypeError: Object #<Object> has no method 'connectArd' 

Code:

angular.module('hardware.services', []) 

    .factory('hardwareserv', function($http,$rootScope,$state,$cordovaBluetoothSerial) { 

var hardwareService = {}; 

     hardwareService.connectArd = function(MACaddress) { 
      window.bluetoothSerial.connect(MACaddress, this.successConnect2, this.failConnect);    
     }; 

     this.connectArd(MACdevicex); // calling above method 

     return hardwareService; 

    }); 
+0

Ich sehe nicht, 'hardwareService' überall definiert. Dieser Codeabschnitt zeigt nicht an, dass "this" gleich "hardwareService" ist. – devqon

+0

Sorry vergessen zu fügen, aber haben es mit var hardwareService = {}; – condo1234

Antwort

1

müssen Sie hardwareService.connectArd(MACdevicex) anrufen.

Da Sie Funktion hardwareService Objekt zuweisen, können Sie es aus there.not von der Fabrik Umfang nennen müssen

+0

Da Sie dem Objekt 'hardwareService' eine Funktion zuweisen, müssen Sie es von dort aufrufen. Nicht vom Werksumfang. –

+0

Ja, das funktioniert, danke – condo1234