'use strict' app.controller('xxxxx', function($scope) { $scope.aaaa =null; $scope.chooseImage = function(){ wx.chooseImage({ sourceType: [], success:function(res){ $scope.aaaa =1 } }); }; });
<p ng-click="chooseImage()">{{aaaa}}</p>
點擊後頁面aaaa的值並不會 改變爲 1html
由於 wx.chooseImage 這個方法是微信的API, 並不在angular context裏面,沒有調用apply方法。微信
$apply方法使用情景:AngularJS 外部的控制器(DOM 事件、外部的回調函數如 jQuery UI 空間等)調用了 AngularJS 函數以後,必須調用$apply。在這種狀況下,你須要命令 AngularJS 刷新自已(模型、視圖等) ,$apply 就是用來作這件事情的。app
以前看見同事寫個$timeout(function(){}) 就行了,也是好奇。原來angular在$timeout方法裏已經封裝了apply方法。函數
我主要看了這兩篇文章:post