2016-04-05 5 views
0

ngRepeatの中のディレクティブを呼び出そうとしましたが、失敗しています。 しかし、ngRepeat以外の同じディレクティブがうまくいきます。ngRepeatの内部で指令を呼び出すにはどうすればよいですか?

以下のコードを確認してください:NG-リピートから指示を起動する方法

<html> 
    <head> 
     <script src ="//ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script> 
    </head> 
    <body ng-app = "myApp"> 
     <div ng-controller = "myCtrl"> 
     <div ng-repeat="list in lists"> 
      <div>{{fileName}}</div> 
      <input type = "file" id=list file-model = "myFile"/> 
      <button ng-click = "uploadFile()">upload me</button> 
     </div> 
     </div> 

    <script> 
    var myApp = angular.module('myApp', []); 

    myApp.directive('fileModel', ['$parse', function ($parse) { 
     return { 

      restrict: 'E', 
      link: function($scope, element, attrs) { 
       var model = $parse(attrs.fileModel); 
       var modelSetter = model.assign; 

       element.bind('change', function(){ 
       $scope.$apply(function(){ 
        modelSetter($scope, element[0].files[0]); 
       }); 
       }); 
      } 
     }; 
    }]); 

    myApp.controller('myCtrl', ['$scope', function($scope){ 
     $scope.lists=[1,2,3]; 
     $scope.uploadFile = function(){ 
      var file = $scope.myFile; 

      console.log('file is '); 
      console.dir(file); 
      $scope.fileName=file.name; 

     /* var uploadUrl = "/fileUpload"; 
      fileUpload.uploadFileToUrl(file, uploadUrl);*/ 
     }; 
    }]); 

    </script> 
</body> 
</html> 

を?

+0

あなたはディレクティブを 'E'要素に制限し、属性として使用していますか? –

答えて

0

ディレクティブを 'E'-要素に制限し、それを属性として使用しています。制限プロパティをEAに変更します。

var myApp = angular.module('myApp', []); 

    myApp.directive('fileModel', ['$parse', function ($parse) { 
     return { 

      restrict: 'EA', 
      link: function($scope, element, attrs) { 
       var model = $parse(attrs.fileModel); 
       var modelSetter = model.assign; 

       element.bind('change', function(){ 
       $scope.$apply(function(){ 
        modelSetter($scope, element[0].files[0]); 
       }); 
       }); 
      } 
     }; 
    }]); 
+0

こんにちは、それはまだ動作していません:-( – Sriraj

関連する問題