在指令中调用回调函数不起作用
Calling callback function in directive doesn't work
我希望指令将一个值传递给回调函数(在控制器中定义)。但是,该函数从未被调用过,我也不知道为什么。
HTML:
<input type='file' fileread success="fileUploaded(data)" name="myFile" id="myFile" />
指令:
myApp.directive('fileread', function() {
return {
scope: {
callBack: '&success',
},
link: function (scope, element) {
scope.callBack({data: "test"});
}
};
});
控制器:
myApp.controller('MyCtrl', function($scope){
$scope.fileUploaded = function(data){
console.log(data);
};
})
FIDDLE: http://jsfiddle.net/v6r9L6g3/4/
您的 html 中缺少 ng-app 和 ng-controller
你的 html 必须是
<div ng-app="myApp" ng-controller="MyCtrl">
<input type='file' fileread success="fileUploaded(data)" name="myFile" id="myFile" />
</div>
以上将正常工作
或者你可以使用你的指令如下
myApp.directive('fileread', function() {
return {
scope: {
success: '&',
},
link: function (scope, element) {
scope.success({data: "test"});
}
};
});
和
执行代码的唯一麻烦是输入必须被 div 包围,并带有 ng-controller
指令。喜欢关注
<div ng-controller="MyCtrl">
<input type='file' fileread success="fileUploaded(data)" name="myFile" id="myFile" />
</div>
一切都很完美。
我希望指令将一个值传递给回调函数(在控制器中定义)。但是,该函数从未被调用过,我也不知道为什么。
HTML:
<input type='file' fileread success="fileUploaded(data)" name="myFile" id="myFile" />
指令:
myApp.directive('fileread', function() {
return {
scope: {
callBack: '&success',
},
link: function (scope, element) {
scope.callBack({data: "test"});
}
};
});
控制器:
myApp.controller('MyCtrl', function($scope){
$scope.fileUploaded = function(data){
console.log(data);
};
})
FIDDLE: http://jsfiddle.net/v6r9L6g3/4/
您的 html 中缺少 ng-app 和 ng-controller 你的 html 必须是
<div ng-app="myApp" ng-controller="MyCtrl">
<input type='file' fileread success="fileUploaded(data)" name="myFile" id="myFile" />
</div>
myApp.directive('fileread', function() {
return {
scope: {
success: '&',
},
link: function (scope, element) {
scope.success({data: "test"});
}
};
});
和
执行代码的唯一麻烦是输入必须被 div 包围,并带有 ng-controller
指令。喜欢关注
<div ng-controller="MyCtrl">
<input type='file' fileread success="fileUploaded(data)" name="myFile" id="myFile" />
</div>
一切都很完美。