详解Angular的双向数据绑定(MV-VM)
发布时间 - 2026-01-10 22:07:34 点击率:次angular的核心MVVM,下面来看看MV(数据到视图)。
<div ng-controller="Aaa">
<p>{{name}}</p>
</div>
<script type="text/javascript">
function Aaa($scope){
$scope.name = 'hello AngularJs';
setTimeout(function(){
$scope.name = 'Hi';
},2000);
};
</script>
执行上面代码,我们使用setTimeout延迟两秒去更新数据(M),我们的视图(V)并没有发生改变。
其实数据确实发生改变了,但是我们的视图(V)并没有及时刷新,原因是原生的setTimeout不具备刷新的功能。
angular为我们提供了setTimeout的服务,$timeout,需要在Aaa中引入该服务 !
<div ng-controller="Aaa">
<p>{{name}}</p>
</div>
<script type="text/javascript">
function Aaa($scope,$timeout){
$scope.name = 'hello AngularJs';
$timeout(function(){
$scope.name = 'Hi';
},2000);
};
<script>
这样就可以刷新视图了,M(数据)到V(视图)的过程。
如果我也想让setTimeout也具有刷新视图的功能怎麽办 ? 可以借助$apply方法!
<div ng-controller="Aaa">
<p>{{name}}</p>
</div>
<script type="text/javascript">
function Aaa($scope){
$scope.name = 'hello AngularJs';
setTimeout(function(){
$scope.$apply(function(){
$scope.name = 'Hi';
});
},2000);
}
<script>
也能实现刷新视图!
在举个例子:
<div id="Aaa" ng-controller="Aaa" ng-click="name='Hi'">
<p>{{name}}</p>
</div>
<script type="text/javascript">
function Aaa($scope){
$scope.name = 'hello AngularJs';
};
</script>
我们在ID为Aaa的元素绑定了一个点击事件,当发生点击的时候将name值改为Hi,
当然,也可以传递一个函数,来实现更多的功能。
<div id="Aaa" ng-controller="Aaa" ng-click="show()">
<p>{{name}}</p>
</div>
<script type="text/javascript">
function Aaa($scope){
$scope.name = 'hello AngularJs';
$scope.show = function(){
$scope.name = 'Hi';
};
}
</script>
看到了click,相信你也知道如何使用鼠标移入和移出的这些常用的事件了。
看最后一个例子,V(视图)到M(数据)的过程。
<div ng-controller="Aaa">
<input type="text" ng-model="name"/>
<p>{{name}}</p>
</div>
<script type="text/javascript">
function Aaa($scope){
$scope.name = 'hello AngularJs';
};
</script>
我们在input标签上绑定了一个ng-model,这个就是绑定的数据,会默认填充到input的value上,当我们的input值发生改变的时候,对应在$scope中的数据也会发生改变,从而影响到视图中的p标签的值也会发生改变。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# Angular
# 数据绑定
# Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
# AngularJS入门教程之数据绑定原理详解
# AngularJS入门教程之数据绑定用法示例
# AngularJS 双向数据绑定详解简单实例
# AngularJS实践之使用NgModelController进行数据绑定
# 详解JavaScript的AngularJS框架中的作用域与数据绑定
# angularjs学习笔记之双向数据绑定
# 也会
# 定了
# 我也
# 鼠标
# 也能
# 来看看
# 当我们
# 应在
# 影响到
# 想让
# 来实现
# 不具备
# 绑定
# 如何使用
# 你也知道
# 就可以
# 举个例子
# 看到了
# 移出
# 一个函数
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
iOS验证手机号的正则表达式
EditPlus中的正则表达式 实战(2)
如何彻底卸载建站之星软件?
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
如何在 Pandas 中基于一列条件计算另一列的分组均值
Laravel如何为API编写文档_Laravel API文档生成与维护方法
iOS UIView常见属性方法小结
教学论文网站制作软件有哪些,写论文用什么软件
?
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
Laravel如何配置和使用缓存?(Redis代码示例)
如何挑选优质建站一级代理提升网站排名?
如何在IIS中配置站点IP、端口及主机头?
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
如何用西部建站助手快速创建专业网站?
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
Laravel如何保护应用免受CSRF攻击?(原理和示例)
深圳网站制作平台,深圳市做网站好的公司有哪些?
北京企业网站设计制作公司,北京铁路集团官方网站?
Laravel如何使用Blade组件和插槽?(Component代码示例)
Laravel如何自定义错误页面(404, 500)?(代码示例)
在线制作视频网站免费,都有哪些好的动漫网站?
JS中对数组元素进行增删改移的方法总结
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
零基础网站服务器架设实战:轻量应用与域名解析配置指南
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
nodejs redis 发布订阅机制封装实现方法及实例代码
Laravel Docker环境搭建教程_Laravel Sail使用指南
如何在橙子建站中快速调整背景颜色?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Laravel怎么使用Intervention Image库处理图片上传和缩放
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
文字头像制作网站推荐软件,醒图能自动配文字吗?
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
网站图片在线制作软件,怎么在图片上做链接?
,怎么在广州志愿者网站注册?
简单实现Android文件上传
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
Laravel如何实现API资源集合?(Resource Collection教程)
JavaScript如何操作视频_媒体API怎么控制播放
JavaScript常见的五种数组去重的方式
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践

