在指令中调用回调函数不起作用

时间:2016-07-06 13:41:27

标签: angularjs angularjs-directive angular-controller

我希望指令将值传递给回调函数(在控制器中定义)。但是,从不调用该函数,我不知道为什么。

HTML:

bool should

指令:

<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"});
        }
    };
});

FIDDLE: http://jsfiddle.net/v6r9L6g3/4/

2 个答案:

答案 0 :(得分:0)

你的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"});
}
};
});

并且

这是工作示例http://jsfiddle.net/31rpuobL/

答案 1 :(得分:0)

执行代码时唯一的问题是输入必须由div包围,并带有ng-controller指令。喜欢以下

<div ng-controller="MyCtrl">
    <input type='file' fileread success="fileUploaded(data)" name="myFile" id="myFile" />
</div>

一切都很完美。