在Angular中,是否有一种方法可以强制性地与指令通信?

斯科特·里皮(Scott Rippey)

我知道的

我有一个带有隔离范围的自定义指令。
从“外部”,我可以使用声明性绑定(通过绑定)与指令进行通信该指令可以使用声明性绑定()或命令性回调(与外部进行通信@=
=&

我想知道的

有什么必要的方法与指令通信

例子

说我有一个<edit-profile>指令。我想公开一个方法reset(),以便该指令的所有者可以(强制)重置该指令。

这是我想做的事情:

<edit-profile on-save="..."></edit-profile>
<button ng-click="editProfile.reset()"> Reset </button>

这是我的指令:

app.directive("editProfile", function() {
    return {
        restrict: "E",
        scope: {
            onSave: "&"
        },
        template: `
            <input type="text">
            <button ng-click="onSave()"> Submit </button>
        `,
        controller: function($scope) {
            $scope.reset = function(){ ... };
        }
    };
});

我可以通过哪些方式来实现这种“命令式”指令传递方法?

JB Nizet

您可以使用与“ form”指令所使用的技术相同的技术:将指令的控制器公开到其父作用域中。这是一个基本示例:

angular.module('directives').directive('foo', function() {
    return {
        scope: {
            name: '='
        },
        controller: function($scope) {
            this.sayHello = function() {
                $scope.hello = 'hello';
            };
            $scope.name = this;
        },
        template: '<div>{{ hello }}</div>'
    };
});

及其单元测试,显示了指令外的链接如何在单击时如何调用指令控制器上的函数:

describe('foo', function() {
    var elm, scope;

    beforeEach(module('directives'));

    beforeEach(inject(function($rootScope, $compile) {
        elm = angular.element(
            '<div><foo name="bar"></foo><a href="" ng-click="bar.sayHello()">say hello</a></div>');

        scope = $rootScope;
        $compile(elm)(scope);
        scope.$digest();
    }));

    it('should say hello', function() {
        var a = elm.find('a');
        var div = elm.find('foo');

        expect(div.text()).not.toContain('hello');

        a.triggerHandler('click');

        expect(div.text()).toContain('hello');

    });
});

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL中是否有一种方法可以强制无向边缘的唯一性?

来自分类Dev

AngularJS是否有一种方法可以在boostrap之后动态注册指令

来自分类Dev

有没有一种方法可以检测AngularJS中的指令破坏?

来自分类Dev

有没有一种方法可以确定angular.js中是否存在url查询参数?

来自分类Dev

有没有一种方法可以确定angular.js中是否存在URL查询参数?

来自分类Dev

在Angular中,是否有一种方法可以防止包含串联值的表达式中的闪烁?

来自分类Dev

有没有一种方法可以验证使用JUnit时是否在测试方法中调用了try / catch指令的Catch部分?

来自分类Dev

有没有一种方法可以检查函数是否在python中是递归的?

来自分类Dev

是否有一种方法可以强制将Azure CDN文件作为浏览器附件下载?

来自分类Dev

使用json_encode,是否有一种方法可以强制某些值不转换为数字?

来自分类Dev

Java中是否有一种方法可以让编译器处理互斥选项?

来自分类Dev

python中是否有一种方法可以更改处理get的收益的顺序?

来自分类Dev

在R中,是否有一种方法可以将向量指定为* literal *?

来自分类Dev

流星中是否有一种方法可以立即重新渲染?

来自分类Dev

在iOS中,是否有一种方法可以使按钮在弧线或圆周围移动?

来自分类Dev

R中是否有一种方法可以按“行程”分组?

来自分类Dev

在ansible中,是否有一种方法可以记录角色的结果?

来自分类Dev

在watir中,是否有一种方法可以捕获与.present匹配的文本?

来自分类Dev

R中是否有一种方法可以连接csv文件的折线?

来自分类Dev

在Swift中是否有一种方法可以将泛型约束为一种类型或另一种类型?

来自分类Dev

有没有一种方法可以强制Python程序在2.7版中运行?

来自分类Dev

有没有一种方法可以强制httpie对查询参数中的空格使用'%20'而不是'+'?

来自分类Dev

有没有一种方法可以强制将鼠标限制在Windows 7中的任意窗口中?

来自分类Dev

有没有一种方法可以通过蓝牙可靠地通信?

来自分类Dev

有没有一种方法可以强制Windows缓存文件?

来自分类Dev

有没有一种方法可以强制执行引用左值?

来自分类Dev

有没有一种方法可以强制Ubuntu在BIOS模式下安装?

来自分类Dev

有没有一种方法可以强制执行引用左值?

来自分类Dev

有没有一种方法可以强制Solr查询不使用缓存?

Related 相关文章

  1. 1

    SQL中是否有一种方法可以强制无向边缘的唯一性?

  2. 2

    AngularJS是否有一种方法可以在boostrap之后动态注册指令

  3. 3

    有没有一种方法可以检测AngularJS中的指令破坏?

  4. 4

    有没有一种方法可以确定angular.js中是否存在url查询参数?

  5. 5

    有没有一种方法可以确定angular.js中是否存在URL查询参数?

  6. 6

    在Angular中,是否有一种方法可以防止包含串联值的表达式中的闪烁?

  7. 7

    有没有一种方法可以验证使用JUnit时是否在测试方法中调用了try / catch指令的Catch部分?

  8. 8

    有没有一种方法可以检查函数是否在python中是递归的?

  9. 9

    是否有一种方法可以强制将Azure CDN文件作为浏览器附件下载?

  10. 10

    使用json_encode,是否有一种方法可以强制某些值不转换为数字?

  11. 11

    Java中是否有一种方法可以让编译器处理互斥选项?

  12. 12

    python中是否有一种方法可以更改处理get的收益的顺序?

  13. 13

    在R中,是否有一种方法可以将向量指定为* literal *?

  14. 14

    流星中是否有一种方法可以立即重新渲染?

  15. 15

    在iOS中,是否有一种方法可以使按钮在弧线或圆周围移动?

  16. 16

    R中是否有一种方法可以按“行程”分组?

  17. 17

    在ansible中,是否有一种方法可以记录角色的结果?

  18. 18

    在watir中,是否有一种方法可以捕获与.present匹配的文本?

  19. 19

    R中是否有一种方法可以连接csv文件的折线?

  20. 20

    在Swift中是否有一种方法可以将泛型约束为一种类型或另一种类型?

  21. 21

    有没有一种方法可以强制Python程序在2.7版中运行?

  22. 22

    有没有一种方法可以强制httpie对查询参数中的空格使用'%20'而不是'+'?

  23. 23

    有没有一种方法可以强制将鼠标限制在Windows 7中的任意窗口中?

  24. 24

    有没有一种方法可以通过蓝牙可靠地通信?

  25. 25

    有没有一种方法可以强制Windows缓存文件?

  26. 26

    有没有一种方法可以强制执行引用左值?

  27. 27

    有没有一种方法可以强制Ubuntu在BIOS模式下安装?

  28. 28

    有没有一种方法可以强制执行引用左值?

  29. 29

    有没有一种方法可以强制Solr查询不使用缓存?

热门标签

归档