Element.find方法不适用于angular指令

时间:2017-11-05 09:30:57

标签: javascript angularjs

以下是我的指令的实现:

function Upload(){
    return {
        restrict: 'E',
        replace: false,
        template: '<input type="file" id="uploader" name="files[]" multiple /><button id="submit">submit</button>',
        controller: 'inputControl',
        link: function(scope, elem, attrs, ctrl){
            console.log(elem);
            console.log(elem.find('input[type=\'file\']'));
            elem.find('#submit').bind('click', function() {
                console.log(elem.find('input[type=\'file\']'));
                elem.find('input[type=\'file\']').click();
            });
            elem.find('input[type=\'file\']').on('click', scope.fileSelectionHandler);
            scope.$on("$destroy",function Destructor(){
                elem.find('input[type=\'file\']').off('click', scope.fileSelectionHandler);
            });

        }
    }
}

app.directive('fUpload',['Data','$rootScope', Upload]);

HTML代码

 <f-upload></f-upload>

模板是渲染,范围是,应用,但是elem.find方法仍然返回一个空原型,因此没有调用该指令的观察者和监听器。我很有棱角!真的很感激帮助。

修改
我尝试$timeout延迟0秒。它不起作用。

0 个答案:

没有答案