详细的解决方案使用$广播和发射角

为了在控制器之间传递变量的变化,需要在广播中传递和以角方式发射$方法,而$ $用于接收事件和响应。

广播被翻译成无线电,即上级通过较低的水平。



示例代码:




Angular.module(的应用
控制器(子)
美元美元范围。(parentchange
$scope.change = changed;
scope.child美元= M;
})
})
控制器(父
美元。
如果(n = o){
返回;
}
美元美元范围。广播(parentchange
})
})




父级:{父} }



{更改}子:{ } }






使用$看监控亲值变化的代码,当变化将从parentchange事件广播传递参数(输入值)的使用范围,美元。美元元域(parentchange,Handler)接收parentchange事件,然后接受输入值和指定子域孩子变,完成价值的转移。

uff1a效应




发射被转换为发射,也就是说,低层通过上级。



示例代码:




Angular.module(的应用
控制器(父
美元美元范围。(childchange
scope.change美元=改变;
scope.parent美元= M
})
})
控制器(子)
范围$
如果(n = o){
返回;
}
美元美元范围。发出(childchange
})
})




{更改}父级:{父} }

子:{ } }







当孩子的价值变化的因素,childchange将发给上级的事件,父元素的监测由美元(childchange)将响应传递参数分配给母公司,整个过程类似于广播。

uff1a效应




在上述所有域中都存在一个层次关系,如果要执行相同级别的作用域该怎么办呢

我们可以使用服务来广播事件:




Angular.module(的应用
服务(myservive 。
返回{
更改:函数(n){
rootscope美元。美元的广播(valuechange

}
}
})
控制器(Bro1 。
美元美元范围。看(中
MyServive.change(N);
})

美元美元范围。(valuechange
console.log(中);
scope.value1美元= M;
})
})
控制器(BrO2
美元美元范围。看(value2
MyServive.change(N);
})

美元美元范围。(valuechange
console.log(定);
scope.value2美元= M;
})
})





value1:



value2:







我们使用rootscope美元的服务,都属于它的范围,在此基础上,我们可以在根域广播事件,rootscope美元。美元的广播(valuechange,N);当改变方法,每个孩子在价值范围的变化,我们将在同一时间播出事件,每个领域,监测美元(valuechange )的事件,并做出相应处理,从而实现子域名价值的功能将被转移到兄弟的范围。

效果是:




以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。