2016-11-26 81 views
-1

我複製一些代碼從一個項目,我瞭解完整的項目,但我共熔笏是「.directive」如果我在這裏CHANE任何事物的文件不uploding請helpme如何使用指令的角度

HTML代碼

<input type="file" name="attachment" data-ak-file-model="tutorial.attachment" /> 

Angular.Js 這裏,如果我的運行時間期間,文件改變「akFileModel」一個字不pleasse uploding解釋該部分我複製這從https://www.codeproject.com/tips/878730/file-upload-using-angularjs-and-asp-net-mvc

.directive("akFileModel", ["$parse", 
      function ($parse) { 
       return { 
        restrict: "A", 
        link: function (scope, element, attrs) { 
         var model = $parse(attrs.akFileModel); 
         var modelSetter = model.assign; 
         element.bind("change", function() { 
          scope.$apply(function() { 
           modelSetter(scope, element[0].files[0]); 
          }); 
         }); 
        } 
       }; 
      }]); 
+0

foo.directive允許定義foo模塊中的一個指令。 https://docs.angularjs.org/api/ng/provider/$compileProvider#directive –

+0

可以解釋說明:代碼背後是 –

+0

。文檔再次提供幫助。它使用$ parse解析屬性「akFileModel」(https://docs.angularjs.org/api/ng/service/$parse)。這將返回一個getter函數,它具有一個賦值表達式的setter屬性。當在元素上觸發「更改」事件時,將調用setter來獲取由元素選擇的文件,並將其設置爲由解析的表達式引用的變量。因此,將用選定的文件填充$ scope.foo。 –

回答

1

閱讀如何命名directive和在HTML

.directive("akFileModelsam", ["$parse", 

樣品使用它:

<input type="file" name="attachment" class="form-control" data-ak-file-modelsam="tutorial.attachment" /> 
+0

謝謝你太太薩里先生 –

1

在這種情況下'akFileModel'的指令名稱綁定到html。由於html不區分大小寫,因此會更改爲ak文件模型。

所以,如果你改變指令名稱爲「akChangeModel」這將是AK-變化模型在html元素。

鏈接到該指令文檔https://docs.angularjs.org/guide/directive