uib-tabset杀死了我的输入更改指令的范围

时间:2017-04-05 19:30:03

标签: javascript angularjs angular-ui-bootstrap

如果有一个uib-tabset和一个等待更改uib-tabset内部输入的指令,则会到达此指令但是必须触发一个范围。$ broadcast这不会调用该函数。

查看

  <uib-tabset active="active">
     <uib-tab>
       <input type="file" class="upload" share-all="" accept="image/*">

服务/指令

.directive('shareAll', [function() {
    return {
        restrict: 'A',
         link: function(scope, elem, attr) {
           $(elem).on('change', function(event) {
            return scope.$broadcast('shareIt', elem);
            }
        }
    }
});

控制器

$scope.$on('shareIt', function(event, file) {
});

我看到了这个(https://github.com/angular-ui/bootstrap/issues/1553),但完全没有理解,这慢慢地杀了我。

有些想法?

1 个答案:

答案 0 :(得分:0)

我认为你不需要jQuery $对象,elem已经是jqLite对象(除非你有jQuery,否则elem已经是$的别名)

你也没有正确关闭你的职能。

app.directive('shareAll', [function() {
    return {
        restrict: 'A',
        link: function(scope, elem, attr) {
            elem.on('change', function(event) {
                return scope.$broadcast('shareIt', elem);
            })
        }
    }
}]);

这是一个演示plunk