【问题标题】:uib-tabset killing the scope of my input change directiveuib-tabset 杀死了我的输入更改指令的范围
【发布时间】:2017-08-31 14:09:57
【问题描述】:

有一个 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),但什么都不懂,这让我慢慢丧命。

有什么想法?

【问题讨论】:

    标签: javascript angularjs angular-ui-bootstrap


    【解决方案1】:

    我认为您不需要 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-20
      • 1970-01-01
      相关资源
      最近更新 更多