Javascript 指令作用域未被破坏
我使用的指令是使用ng文件上传上传文件。此指令包含在从主控制器调用的模式窗口中。我正在从主控制器调用$rootScope.$broadcast事件,并在指令中侦听该事件。当用户打开模态两次(或更多次)时,我遇到了一些问题,似乎每个被调用指令的指令作用域都没有被破坏,并且在作用域中运行了两次。$on directive call 模态视图Javascript 指令作用域未被破坏,javascript,html,angularjs,directive,Javascript,Html,Angularjs,Directive,我使用的指令是使用ng文件上传上传文件。此指令包含在从主控制器调用的模式窗口中。我正在从主控制器调用$rootScope.$broadcast事件,并在指令中侦听该事件。当用户打开模态两次(或更多次)时,我遇到了一些问题,似乎每个被调用指令的指令作用域都没有被破坏,并且在作用域中运行了两次。$on directive call 模态视图 <div class="dup-group-doc2 col-md-9" data-ng-if="carvm.isEdit"> <up
<div class="dup-group-doc2 col-md-9" data-ng-if="carvm.isEdit">
<upload-document add-button="true" delete-button="false" review-obj="carvm.review" document-types="carvm.documentTypes" agencies="carvm.agenciesByReview" module="'CAR'" show-upload-button="false" show-add-button="true" event="carvm.event">>
</upload-document>
</div>
<div class="form-group row">
<label for="customDocName" class="col-md-4 control-label text-right">Document Name:</label>
<input type="text" class="col-md-3" id="customDocName" placeholder="Name document (optional)" data-ng-model="reviewObj.docObj.docName" data-ng-change="onChange()">
<input ng-if="!isEdit" type="file" class="col-md-5" ngf-select ng-model="$parent.docFile" name="file" ngf-max-size="5MB" required value="Choose File" ngf-model-invalid="errorFile" validfile>
</div>
指令视图
<div class="dup-group-doc2 col-md-9" data-ng-if="carvm.isEdit">
<upload-document add-button="true" delete-button="false" review-obj="carvm.review" document-types="carvm.documentTypes" agencies="carvm.agenciesByReview" module="'CAR'" show-upload-button="false" show-add-button="true" event="carvm.event">>
</upload-document>
</div>
<div class="form-group row">
<label for="customDocName" class="col-md-4 control-label text-right">Document Name:</label>
<input type="text" class="col-md-3" id="customDocName" placeholder="Name document (optional)" data-ng-model="reviewObj.docObj.docName" data-ng-change="onChange()">
<input ng-if="!isEdit" type="file" class="col-md-5" ngf-select ng-model="$parent.docFile" name="file" ngf-max-size="5MB" required value="Choose File" ngf-model-invalid="errorFile" validfile>
</div>
我不能说您的指令是否被破坏,但对于您当前的代码,您的侦听器无论如何都不会被范围破坏
$rootScope.$on('callDirective', function(event, object) { ... });
此行返回一个注销函数。当您的作用域被破坏时,您必须使用它
var unregister = $rootScope.$on('callDirective', function(event, object) { ... });
scope.$on('$destroy', unregister);
陛下我不知道你是否明白。调用destroy方法时,您打算如何使用它?我想从主控制器调用$on。与您的范围相关的提案。$on(“$destroy”,注销);它永远不会超过美元。