javascript - 指令可以从父范围中删除自身吗

标签 javascript angularjs angularjs-scope angular-directive

假设我有以下代码

<div ng-app="app" ng-controller="controller">
 <div ng-repeat="instance in instances>
  <customDirective ng-model="instance"></customDirective>
 </div>
</div>

我的自定义指令有一个独立的范围,定义为:

 app.directive('customDirective', function($log) {
        return {
            restrict: 'E',
            templateUrl: './template.htm',
            scope: {_instance:"=ngModel"},
            link: function($scope) {
            ....
            }
        });

在这个指令中,我必须选择删除它。我的问题是如何与父作用域中的数组实例通信并告诉它销毁该对象并从我的 DOM 中删除已删除的实例?

希望这是有道理的。

最佳答案

根据 previous comment 中的 New Dev ,这是这样的:

var app = angular.module('app', [])
  .directive('customDirective', function($log) {
    return {
        restrict: 'EA',
        template: '<a href="" ng-click="onRemove()">remove me {{model.n}}</a>',
        scope: {
            model:"=",
            onRemove:"&"
        }
    }
  })
  .run(function($rootScope) {
    $rootScope.instances = [{n:1},{n:2},{n:3},{n:4}];
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
  <div ng-repeat="i in instances">
    <custom-directive model="i" on-remove="instances.splice($index,1)">
    </custom-directive>
  </div>
</div>

关于javascript - 指令可以从父范围中删除自身吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27934426/

相关文章:

angularjs - 打印内容超过 1 页的 Bootstrap Modal 页面会导致 Google Chrome 被截断

AngularJS指令范围不更新它的模板

javascript - 什么是 AMP HTML,它如何适应框架/工具 X?

javascript - Electron "unminimize"

javascript - Accordion 中的 jqPlot 图

javascript - Angular 指令 - Attr 中的嵌套对象

javascript - 我的 Angular View 未随数据表单服务器更新

客户端的 JavaScript eval() 用于运行不受信任的代码

javascript - ng-repeat with in-line edit,如何使第一个(或最后一个元素)具有editmode = true?

javascript - Polymer 元素和 AngularJS 指令有什么区别?