分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

AngularJS ???为什么 我在controller里修改了 变量的值,dom 没有改变

发布时间:2023-09-06 01:29责任编辑:胡小海关键词:AngularAngularJS
‘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的值并不会 改变为 1

因为 wx.chooseImage 这个方法是微信的API, 并不在angular context里面,没有调用apply方法。

$apply方法使用情景:AngularJS 外部的控制器(DOM 事件、外部的回调函数如 jQuery UI 空间等)调用了 AngularJS 函数之后,必须调用$apply。在这种情况下,你需要命令 AngularJS 刷新自已(模型、视图等) ,$apply 就是用来做这件事情的。

之前看见同事写个$timeout(function(){}) 就好了,也是好奇。原来angular在$timeout方法里已经封装了apply方法。

我主要看了这两篇文章:

谈谈Angular关于$watch,$apply 以及 $digest的工作原理

《AngularJS》----$apply 与 $watch

AngularJS ???为什么 我在controller里修改了 变量的值,dom 没有改变

原文地址:http://www.cnblogs.com/wpp12345/p/8000254.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved