Javascript $rootScope.$broadcast来自角度指令';链接';
我试图从我的角度指令内部广播一些数据。指令。我收到未定义的Javascript $rootScope.$broadcast来自角度指令';链接';,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我试图从我的角度指令内部广播一些数据。指令。我收到未定义的错误的无法读取属性$broadcast。我试图从指令向控制器广播数据的方式是否存在某种问题 angular.module('myapp').directive("fileread", function (ServerRequest, $sessionStorage, $rootScope) { return { scope: { myData: '=', opts: '=' },
错误的无法读取属性$broadcast。我试图从指令向控制器广播数据的方式是否存在某种问题
angular.module('myapp').directive("fileread", function (ServerRequest, $sessionStorage, $rootScope) {
return {
scope: {
myData: '=',
opts: '='
},
link: function ($scope, $elm, $attrs, $rootScope) {
console.log($scope)
console.log('fileread before',$scope.myData,$scope.opts)
$elm.on('change', function (changeEvent) {
console.log('directive');
var reader = new FileReader();
console.log(reader)
reader.onload =function (evt) {
$scope.$apply(function () {
var data = evt.target.result;
console.log('fileread scope apply')
var workbook = XLSX.read(data, {type: 'binary'});
------------PROBLEM IS BELOW HERE-------------
$scope.broadcastfilename = data;
$rootScope.$broadcast('filenameforupload', '$scope.broadcastfilename');
console.log('passed broadcast');
-------------AND ABOVE HERE--------------------
var headerNames = XLSX.utils.sheet_to_json(
workbook.Sheets[workbook.SheetNames[0]],
{ header: 1 }
)[0];
var importedData = XLSX.utils.sheet_to_json( workbook.Sheets[workbook.SheetNames[0]]);
console.log(headerNames,workbook);
console.log(importedData)
$sessionStorage.headerNames = headerNames;
$sessionStorage.importedData = importedData;
// addRows(data);
$elm.val(null);
//this is where we add the new data to the existing data
var query = {
patients: importedData,
coverKey: $sessionStorage.practiceLogged.coverKey
}
});
};
reader.readAsBinaryString(changeEvent.target.files[0]);
});
}
}
});
在我的控制器中,我有:
$scope.$on('filenameforupload', function(event, args) {
console.log(args, "<------------");
});
$scope.$on('filenameforupload',函数(事件,参数){
log(args,“从链接
函数中删除$rootScope
参数,这将终止指令工厂函数中注入的$rootScope
依赖项的存在