gpt4 book ai didi

angularjs - 多个指令实例和事件

转载 作者:行者123 更新时间:2023-12-04 07:54:54 25 4
gpt4 key购买 nike

我有一个在页面上多次使用的指令。它在状态改变时触发一个事件,然后 Controller 处理该事件。

问题是该事件被触发两次。我明白为什么会发生这种情况,但我一直在寻找解决方法或更好的设计。有小费吗?

Plunker 示例:http://plnkr.co/edit/xObOvi253qejphU5arFr

最佳答案

您需要定义隔离范围以使指令可重用。一个简单的解决方法是添加 scope: {}创建一个隔离的范围,这样当您单击每个按钮时,它只会触发一次。

app.directive('myDirective', function () {
return {
restrict: 'E',
scope: {}, // Add this line to create an isolated scope
template: '<div>Foo: {{foo}}</div><button ng-click="incrementFoo()">Increment Foo</button>',
controller: function ($scope) {
$scope.foo = 0;
$scope.incrementFoo = function () {
$scope.foo += 1;
};

$scope.$watch('foo', function () {
$scope.$emit('fooChanged', {foo: $scope.foo});
console.log($scope);
});
}
};
});

关于angularjs - 多个指令实例和事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17996521/

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