我正在尝试编写一个脚本来访问 rootscope 并从开发工具更改变量值。我可以获得范围和根范围,但我的更改没有显示在我的绑定中。但是,如果我使用绑定输入,一切都很好。
例子:
<input ng-model="mode"></input>
<span ng-bind-html="mode"></span>
互相更新很好但是
angular.element("body").scope().$root.mode = 'test'
更新控制器,但对绑定没有影响。我使用 === 比较了我的原始控制器和我的控制台控制器,它们是相等的。
因此,根据我阅读的内容,我需要广播或发出我已经更改了范围,但是我似乎无法弄清楚要广播什么,或者我是否正确广播。
广播代码尝试:
scope.$apply(function() {root.$emit('change', {mode: 1})})
scope.$apply(function() {root.$emit('stateChangeSuccess', {mode: 1})})
root.$apply(function() {root.$emit('change', {mode: 1})})
root.$apply(function() {root.$emit('stateChangeSuccess', {mode: 1})})
另外应该注意的是,更改输入将更改跨度,但不会更改我的根范围副本。
root.mode = 'console'
type 'input text' in the input
root.mode returns 'console'