2016-11-09 150 views
0

使用離子v1和嘗試使用thisself從工廠內部調用一個函數,但得到錯誤信息:廣東話呼叫服務方法(使用離子)

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

代碼:

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

稱它爲我沒有看到'hardwareService'任何地方所定義。這段代碼沒有顯示'this'等於'hardwareService' – devqon

+0

很抱歉忘了添加,但是用var hardwareService = {}定義了它。 – condo1234

回答

1

您必須致電hardwareService.connectArd(MACdevicex)

由於你hardwareService對象分配功能,您必須從there.not從工廠範圍

+0

由於您正在將函數分配給'hardwareService'對象,因此您必須從那裏調用它,而不是從工廠作用域中調用它。 –

+0

是的,工作,謝謝 – condo1234