gpt4 book ai didi

angularjs - 在具有隔离范围的两个相同指令之间进行通信

转载 作者:行者123 更新时间:2023-12-02 03:22:13 27 4
gpt4 key购买 nike

我是 angularjs 的新手,我有一个具有隔离范围的自定义指令。我在同一指令的两个实例之间进行通信时遇到问题。我怎样才能做到这一点 ?非常感谢您的建议。

<div date-control="cal1" ng-model="mydate" calendar-properties="calendarProperties1"></div>
<div date-control="cal2" ng-model="mydate2" calendar-properties="calendarProperties2"></div>

我想做的是使用一些数据共享或任何东西同时打开日历属性中具有“to”和“from”属性的日期控件?你可以查看这个plnkr sample .

最佳答案

指令只是函数调用的结果

angular.directive('myDir',function(){
var common;
return directiveObject;
});

directiveObject 是您用来创建指令的任何变体。最主要的是,在返回之前,您可以声明可以检查更改或调用的公共(public)(如果愿意的话,类)变量和方法,这样您就可以做像

app.directive('myDir',function(){
var bus={
value1:0
};

function increase(){
bus.value1++;
}

return {
scope:{},
template:"<div><h1>{{counter}}</h1><button ng-click="increase()">add</button></div>"
controller:function($scope){
$scope.bus=bus;
$scope.increase = increase
$scope.$watch('bus',function(){
//something here
})
}
};
});

可以在此处找到示例。这可以通过多种方式塑造 http://plnkr.co/edit/d9dpIYCAjOaOBNjoI80u?p=preview

可以使用其他一些方法,例如发出和广播事件,甚至使用服务,但我喜欢这种方法的简单性。

关于angularjs - 在具有隔离范围的两个相同指令之间进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32599710/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com