使用隔离范围删除指令

努尔

我在一个容器中有几个指令,在其中我需要能够专门删除每个指令。每个指令位于一个大div中,该div也包含一个remove按钮。

控制器:

app.controller('eventController', function($scope, $rootScope){;    
  $scope.removeEvent = function (id){
    console.log(id);
    $scope.$broadcast("$destroy" + id);
  }
});

指令:

app.directive('eventView', function () {
  return {
    restrict: 'E',
    replace:true,
    templateUrl: 'partials/EventView.html',
    controller: 'eventController',
    scope: {id : '@'},
    link: function(scope, element){  
        scope.$on("$destroy"+scope.id,function() {
            element.remove();
        }); 
    }
  }
});

问题是我在此行出现错误,scope.$on("$destroy"+scope.id,function() {说id未定义

添加指令:

app.controller('AddTimelineController', function($scope, $rootScope,$compile){
  $scope.id = 0;
  $scope.addEvent = function (){
    newElement = $compile("<event-View id=\"{{id}}\"></event-View>")($scope);
    $scope.id = $scope.id+1;
    eventContainer = angular.element(document.getElementById('eventContainer'));
    eventContainer.append(newElement);
  }
});

删除指令:

app.controller('eventController', function($scope, $rootScope){;    
  $scope.removeEvent = function (id){
    console.log(id);
    $scope.$broadcast("$destroy" + id);
  }
});
马克西姆·肖斯汀(Maxim Shoustin)

而不是使用$broadcast我会使用$watchlink,将监听id的变化。

观看演示 Plunker

的确,$watch()vs进行污垢检查$broadcast()并且$broadcast()比便宜$watch()

但是,在您的情况下,您调用了linkbefore removeEvent,因此指令不能正确id使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用隔离范围删除指令

来自分类Dev

使用指令创建隔离范围

来自分类Dev

使用controllerAs语法从“ this”访问指令的隔离范围

来自分类Dev

使用controllerAs语法从“ this”访问指令的隔离范围

来自分类Dev

在伪装元素内部使用指令的隔离范围

来自分类Dev

使用`&`绑定从隔离范围指令返回承诺

来自分类Dev

指令的隔离范围

来自分类Dev

angularjs指令隔离范围

来自分类Dev

AngularJS隔离范围指令

来自分类Dev

指令,隔离范围,继承

来自分类Dev

使用angularjs中的可选&符号绑定来隔离范围指令?

来自分类Dev

Angular指令:在隔离范围内使用ng-model

来自分类Dev

使用隔离范围时,AngularJS指令不将值插入模板

来自分类Dev

AngularJS-在ngRepeat中使用隔离的指令范围

来自分类Dev

使用隔离范围时,$ watch从内部角度指令更改值

来自分类Dev

使用隔离范围时,AngularJS指令不将值插入模板

来自分类Dev

我可以在指令隔离范围中使用'='代替'&'吗?

来自分类Dev

在简单的Angular指令中使用隔离范围-@,&和=

来自分类Dev

如何在不使用模板的指令中访问隔离范围

来自分类Dev

如何使用Angular指令获取隔离范围的更新值?

来自分类Dev

使用隔离范围时从指令调用控制器的功能?

来自分类Dev

从指令隔离范围的访问属性

来自分类Dev

范围隔离和嵌套指令

来自分类Dev

访问指令内容的隔离范围?

来自分类Dev

从指令测试隔离范围的属性

来自分类Dev

AngularJS指令隔离范围行为

来自分类Dev

AngularJS覆盖隔离的指令范围

来自分类Dev

角度指令隔离范围中的“ =?”

来自分类Dev

AngularJS指令:更新隔离范围

Related 相关文章

热门标签

归档