1. 程式人生 > >外部javascript的js修改angularjs域中的值

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

首先檢視當前的外部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();