2016-04-04 19 views
0

指令から関数を呼び出すにはどうすればよいですか? GetAllActivityActionDetailsメソッドが呼び出されると、関数は起動しません。 contrller機能:Angularjsコントローラ指令

function GetAllActivityActionDetails() { 
     alert("GetAllActivityActionDetails"); 
} 

指令は次のとおりです。

app.directive("bwUpload", ['$log', '$http', function ($log, $http) { 
    return { 

     scope: { project: "=", activity: "=", action: "=", document: "=" }, 

     link: function (scope, element, attributes) { 
      element.bind("change", function (changeEvent) { 
       var reader = new FileReader(); 
       reader.onload = function (loadEvent) { 
        $log.log('onload.byteLength: ' + loadEvent.target.result.byteLength);      
        scope.$apply(function() {       
         var p = 'project_id=' + scope.project._id + '&activity_id=' + scope.activity._id + 
           '&action_name=' + scope.action.name + '&document_id=' + scope.document._id 

         var config = { 

          url: 'baf/DocumentUpload?' + p, 
          method: 'POST', 
          headers: { 'Content-Type': 'application/octet-stream' }, 
          data: new Uint8Array(loadEvent.target.result), 
          transformRequest: [] 
         }; 

         $http(config).then(
          function (resp) { 
           var response = resp.data; 
           $log.log("DocumentUpload response (fileName, length): " + response.fileName + ", " + response.length); 
           alert('Document Uploded.'); 
           //bwGlobals.refreshView() 
           alert(scope.activity._id); 

           //GetAllActivityActionDetails(scope.activity._id); 
           scope.$apply("GetAllActivityActionDetails()"); 
           alert("GetAllActivityActionDetails"); 
          }, 
          function (errResponse) { alert(errResponse); } 
         ); 
        }); 

       } 
       reader.readAsArrayBuffer(changeEvent.target.files[0]); 
      }); 
     } 
    } 
}]); 

私はGetAllActivityActionDetails()フォームディレクティブを呼びたいが、それは、角度パターンの良い練習ではありませんが、それは

+0

私はまたして行わ見ることができます: GetAllActivityActionDetails(scope.activity._id)。 同じ結果//発砲しない – SoloThink

+0

なぜポストメソッドを実行するのにディレクティブを使用していますか?私はこれをサービスとしてやっているだけで好奇心が強い。 {GetAllActivityActionDetails:: '&'} 'してからちょうど呼び出す' $ scope.GetAllActivityActionDetails' – MrNew

+0

は '' スコープのようなあなたのディレクティブのスコープのプロパティでGetAllActivityActionDetails'を追加しますあなたのhtmlでその関数を割り当てますか? – Nilesh

答えて

0

が動作していません、グローバルで関数を作成し、ディレクティブを使用してウィンドウから呼び出すことができます。

var GetAllActivityActionDetails = function() { 
 
    alert("GetAllActivityActionDetails"); 
 
}

そしてそれが好きディレクティブトリガに:

window.GetAllActivityActionDetails(); 
関連する問題