当我使用指令的控制器时也从指令调用控制器方法。

时间:2015-04-03 00:33:15

标签: angularjs angularjs-directive angularjs-scope

我有一个指令,现在我想将相同的数据发送到其他控制器的方法,这个控制器完全独立于该指令。这个其他控制器实际上驻留在当前目录中。

我怎么能在angularjs中做到这一点?

2 个答案:

答案 0 :(得分:3)

创建角度服务并注入两个控制器。从控制器1更新该服务中的变量,并在控制器2中检索。像这样 -

myApp.factory('myFactory', function () {
    // declare and store the value in a local variable here
    var prop = '';

    return {
        getProperty: function () {
            return prop;
        },
        setProperty: function(value) {
            prop = value;
        }
    };
});

function Ctrl1($scope, myFactory) {
    myFactory.setProperty('myValue');
}

function Ctrl2($scope, myFactory) {
    val = myFactory.getProperty();
}

角度服务是Singleton,因此它在整个代码中保持状态。

答案 1 :(得分:1)

在angularjs中有一个关于指令范围的想法。它允许你用3种方式使用指令数据。

1)string @

2)biDirectional =

3)功能性&

我想你已经听说过这些。这个链接也许可以帮到你。 https://docs.angularjs.org/api/ng/service/ $编译#指令定义对象