angular从指令中丢失函数参数(?)

时间:2014-02-06 05:51:03

标签: javascript angularjs

我使用指令(注意:使用jade模板引擎):

file-upload.uploadContainer(complete_function="set_value()")

指令本身:

app.directive('fileUpload', function() {
   return {
      restrict: 'E',
      scope: {
         complete_function: "&completeFunction"
      },
//the rest of the directive

该指令使用的是角度服务的UploadService。 上传完成后,我需要在控制器中调用complete_function。

uploadService.onUploadComplete(function(event) {
          alert("OK");
          console.log("upload successfully completed");
          url = event.target.response;
          console.log(url);
          $scope.complete_function(url);
        });

在上传服务中,我可以看到url(从服务器返回)有效。然后我继续调用$scope.complete_function(url)看起来像这样:

$scope.set_value = function(url) {
    console.log("called");
    console.log(url);

我知道这个函数被调用因为我可以看到日志“被调用”(我已经调试过),所以整个链就像一个魅力。但是,出于某种原因,url中的undefinedset_value() ...为什么??? 它与孤立的范围等有关吗? 怎么做正确?我试着放complete_function="set_value(**url**),但这也无济于事。

1 个答案:

答案 0 :(得分:1)

我在这里找到了解决方案: http://blog-it.hypoport.de/2013/11/06/passing-functions-to-angularjs-directives/

基本上需要提供变量图...