2014-05-11 126 views
1

我在主函數中有兩個angularJS $ scope函數。當調用play()函數時,會出現一個錯誤,指出getPhoneGapPath()未定義。要解決這個AngularJS未定義函數

我的代碼是什麼:

function DontAsk($scope){ 
$scope.getPhoneGapPath = function(){ 

    var path = window.location.pathname; 
    path = path.substr(0, path.length - 10); 
    return 'file://' + path; 

} 
$scope.play= function(){ 
    var os = navigator.platform; 
    if (os=='iPhone'){ 
     var url = "sounds/DontEventAsk.mp3"; 
    } 
    else{ 
     var url = getPhoneGapPath() + "sounds/DontEventAsk.mp3"; 
    } 
    var my_media = new Media(url, 
     // success callback 
     function() { 
      console.log("playAudio():Audio Success"); 
     }, 
     // error callback 
     function(err) { 
      console.log("playAudio():Audio Error: "+JSON.stringify(err)); 
    }); 

    // Play audio 
    my_media.play(); 
}} 

理想我想在getPhoneGapPath()來定義,也以外的主要功能,因爲我有這樣的DontAsk()一個多種功能。

非常感謝。

回答

1

範圍內沒有getPhoneGapPath函數。要定義這個函數爲$scope對象的屬性,所以你應該相應地使用它:

$scope.getPhoneGapPath() 
+0

這是不公平:(你是太快)) – nicael

+0

而你給了更完整的代碼示例: ) – dfsq

+0

啊,非常感謝。 @尼卡爾你說得對,他速度很快。 – benjipelletier

2
var url = $scope.getPhoneGapPath() + "sounds/DontEventAsk.mp3";