javascript - 如何在指令之外传递 'scope' 参数

标签 javascript angularjs angularjs-directive

如何在指令之外传递“范围”参数? 我需要在其他组件中使用它..

我的代码:

(function () {
angular.module('dmv.shared.components').
    directive('doImportPackage', ['Package', function (Package) {
        return {
            restrict: 'A',
            scope: {
                onStart: '<',
                onFinish: '<',
                onError: '<'},
link: function (scope, element, attributes) {

  }

tnx!!

最佳答案

您可以通过 Controller 来执行此操作。由于 AngularJS 按照 2 路数据绑定(bind)原则工作,因此您分配的这些变量将已经从您引用的位置进行更新,并且您也可以将它们与其他指令一起使用。例如,我假设您按如下方式使用指令:

<do-import-package 
    on-start="myCtrl.onStart" 
    on-finish="myCtrl.onFinish" 
    on-error="myCtrl.onError">
</do-import-package>

myCtrl Controller 中有以下相应的变量:

this.onStart = some value;
this.onFinish = some value;
this.onErrod = some value;

正常情况下,您可以将其他指令的属性绑定(bind)到这些值,它们将以 2-way 的方式更新。例如,如果您使用以下指令,则两个指令都应使用相同的值进行更新。

<other-directive 
    on-start="myCtrl.onStart" 
    on-finish="myCtrl.onFinish" 
    on-error="myCtrl.onError">
</other-directive>

关于javascript - 如何在指令之外传递 'scope' 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40990131/

相关文章:

javascript - html before after 属性不起作用

angularjs - 如何扩展 Angular 工厂

javascript - 如何在 AngularJS 的元素指令模板内使用属性指令?

angularjs - Angular 不更新绑定(bind)属性

javascript - 使用 angular.element(document.querySelector(id)).attr ('checked' , true) 更改复选框值时,模型值未得到反射(reflect)

javascript - jquery 选择复选框选定的值

javascript - 使用 Javascript 有条件地更改列表项属性

javascript - 使用 PHP、AJAX 和 jQuery 搜索 MySQL 数据库

javascript - AngularJS 数组过滤器不起作用

angularjs - 将支付网关与 IONIC 集成