Javascript 函数双向界落入无限循环的Angularjs指令

Javascript 函数双向界落入无限循环的Angularjs指令,javascript,angularjs,directive,Javascript,Angularjs,Directive,我正在尝试创建一个自定义指令,以使用包含数据的组合。此指令有一个正在传递的更改函数,并在模板中使用ng change。它调用的函数在父级的作用域中,而不是在独立的指令作用域中。例如: app.directive('selectDirective', function() { return { templateUrl: 'templates/myTemplate.html', restrict: 'E', require: 'ngModel'

我正在尝试创建一个自定义指令,以使用包含数据的
组合。此指令有一个正在传递的更改函数,并在模板中使用
ng change
。它调用的函数在父级的作用域中,而不是在独立的指令作用域中。例如:

app.directive('selectDirective', function() {
    return {
        templateUrl: 'templates/myTemplate.html',
        restrict: 'E',
        require: 'ngModel',

        scope: {
            change: '=',
        }
        ...
    }
此指令的调用方式如下:

如您所见,我使用双向绑定(
=
)来定义父范围中的函数。必须这样做,因为调用此函数时,我会更新其他
s。注意,在父函数中,我使用指令模型检索其id


我的问题是,一旦调用了父函数,它就会陷入一个无限循环,我想不出一条出路。有什么想法吗?

通过使用
$timeout
服务包装函数解决了问题。它将函数添加到队列中,并在angular就绪后执行,以便模型也同步。

使用
&
计算表达式“=”用于绑定简单变量。使用“&”绑定函数,而不是使用
&
绑定函数,但模型同步有问题。调用函数后,模型正在更改。