gpt4 book ai didi

angularjs - 从内部指令将参数传递给 ngChange 事件调用

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

我有一个指令接受 ng-change属性:

<radio-buttons options="optionsList" 
ng-model="myModel"
ng-change="myCallback($event)"></radio-buttons>

我在 Controller 中定义了一个函数, myCallback ,看起来像这样:

$scope.myCallback = function(e) {
console.log("Callback from controller");
console.log(e);
}

以下函数 select 存在于我的 radioButton 中指示。我需要在 select 函数的指令中定义何时执行 ngChange 回调:

function select(scope, val) {
if (!scope.disabled && scope.selectedValue != val) {
scope.selectedValue = val;
scope.model = val;

scope.callback.call();
}
}

我遇到的问题是参数 $eventmyCallback当我执行 myCallback 时没有被传递内 select我的指令的功能。

fiddle : http://jsfiddle.net/dkrotts/BtrZH/7/更新: http://jsfiddle.net/dkrotts/BtrZH/8/

我究竟做错了什么?

最佳答案

如果您想控制何时调用 ng-change 的处理程序,我认为最简单的方法是完全删除 ng-change - 您可以直接从 ng-click 回调中调用 Controller 函数。

我认为这可以实现您想要的功能:

http://jsfiddle.net/BtrZH/11/

如果需要,您可以从单击中捕获事件对象:

ng-click="select(scope, option.value, $event)"

然后您可以在需要时调用 Controller 函数:
function select(scope, val, $event) {
if (!scope.disabled && scope.selectedValue != val) {
scope.selectedValue = val;
scope.model = val;
scope.$parent.myCallback($event);
}
}

关于angularjs - 从内部指令将参数传递给 ngChange 事件调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14710392/

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