Я пришел из более строгих языков, таких как Java, C#, C++ и использовал этот код для чтения файла в textarea, не понимая, как он работает из-за проблемы времени. Теперь я пытаюсь изучить директивы, чтобы понять эту директиву, но мне трудно понять одну часть этого кода.Может кто-нибудь объяснить эту часть кода директивы angularjs?
Это функция моего контроллера, которую я ожидаю получить. fileContent - это всего лишь строка текстов:
self.displayFileContent = function(contents) {
self.fileContent = contents;
};
Это реализация директивы read file. Я ожидаю, что вызов будет displayFileContentFn(fileContents)
, но почему он вызывает функцию с совершенно разными параметрами (и разными параметрами)? здесь находится {'content: filecontents} объект javascript?
scope: false,
link: function(scope, element, attrs) {
element.bind('change', function(e) {
var displayFileContentFn = $parse(attrs.onFileChange);
var reader = new FileReader();
reader.onload = function() {
var fileContents = reader.result;
scope.$apply(function() {
displayFileContentFn(scope, {
'contents' : fileContents
});
});
};
reader.readAsText(element[0].files[0]);
});
}
Можете ли вы предоставить область действия вашей директивы.i.e scope: {} –
'scope: false,' – user3758745