外部javascript的js修改angularjs域中的值

本文介绍如何在AngularJS中通过外部JS修改与特定Controller关联的Scope变量值,包括使用$apply()同步提交和$applyAsync()异步提交的方法,以及解决页面刷新问题和避免错误的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先查看当前的外部js跟哪个controller有关联,插入如下代码即可

var appElement = document.querySelector('[ng-controller=paramCtrl]');
var scope = angular.element(appElement).scope();
//这部就是我们要修改变量的值
scope.paramValue = "要传的值";
//修改完成后,需进行提交
//a、外部改变了scope的值,如果想同步到Angular控制器中,则需要调用$apply()方法即可
$scope.$apply();
//b、异步提交
$scope.$applyAsync();

需要注意问题点:

1、最初没有加入$scope.$apply();方法,页面值不刷新或者刷新很缓慢。

2、使用$scope.$apply()方法时会报【Error: [$rootScope:inprog]】错误。

出现原因:AngularJS报如上错误信息时,代表angular说它已经在处理脏数据了,再立马apply()方法相当于在催它。

解决办法:用如上b的异步提交方法即可。

$scope.$applyAsync();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值