• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >AngularJS > AngularJS中监视Scope变量以及外部调用Scope方法

AngularJS中监视Scope变量以及外部调用Scope方法

作者:Darren Ji 字体:[增加 减小] 来源:互联网 时间:2017-05-30

本文主要包含AngularJS中监视Scope变量以及外部调用Scope方法等相关知识,Darren Ji 希望在学习及工作中可以帮助到您

在AngularJS中,有时候需要监视Scope中的某个变量,因为变量的改变会影响一些界面元素的显示。有时,也希望通过jQuery调用Scope的某个方法。

比如以下场景:

<div>
<button id="jQBtn">jQ Button</button>
</div>
<div id="ngSection" ng-controller="NGCtrl">
<input type="checkbox" ng-model="jQBtnState"/> Toggle jQ button state
<p>Counter: {{counter}}</p>
</div> 
</div>

以上,我们希望:

● Scope中的jQBtnState变量值如果为false让id为jQBtn的按钮禁用
● 点击id为jQBtn的按钮调用Scope中的某个方法让Scope中的变量counter自增1

我们可能会这样写:

$('#jQBtn').on("click", function(){
console.log("JQuery button clicked");
//需要考虑的问题是:
//这里如何调用Scope中的某个方法,使Scope的的变量counter自增1
})

</div>

...

myApp.controller("NGCtrl", function($scope){
$scope.counter = 0;
//这里,怎么让jQBtnState变量值发生变化告之外界呢?
$scope.jQBtnState = false;
$scope.jQBtnClick = function(){
$scope.counter++;
}
}) 
</div>

其实,使用$watch方法可以监视Scope某个变量的变化,当变化发生调用回调函数。

myApp.controller("NGCtrl", function($scope){
$scope.counter = 0;
$scope.jQBtnState = false;
$scope.$watch("jQBtnState", function(newVal){
$('#jQBtn').attr('disabled', newVal);
});
$scope.jQBtnClick = function(){
$scope.counter++;
}
})
</div>

以上,当jQBtnState变量值为false的时候就会禁用id为jQBtn的按钮。

外界如何调用Scope的方法呢?

--先获取Scope,然后使用$apply方法调用Scope内的方法。
$('#jQBtn').on("click", function(){
console.log("JQuery button clicked");
var scope = angular.element(ngSection).scope();
scope.$apply(function(){
scope.jQBtnClick();
});
}) 
</div>

以上,通过获取Scope,使用$apply方法调用Scope内的jQBtnClick方法使Scope呢的变量counter自增1。

以上所述是针对AngularJS中监视Scope变量以及外部调用Scope方法 的相关知识,希望对大家有所帮助。

</div>

您可能想查找下面的文章:

相关文章

  • 2017-05-30Angular 4.x中表单Reactive Forms详解
  • 2017-05-30使用AngularJS制作一个简单的RSS阅读器的教程
  • 2017-05-30AngularJS轻松实现双击排序的功能
  • 2017-05-30Angularjs自定义指令实现三级联动 选择地理位置
  • 2017-05-30深入浅析AngularJS中的一次性数据绑定 (bindonce)
  • 2017-05-30Angular.js指令学习中一些重要属性的用法教程
  • 2017-05-30AngularJS实践之使用NgModelController进行数据绑定
  • 2017-05-30AngularJS实现给动态生成的元素绑定事件的方法
  • 2017-05-30angular源码学习第一篇 setupModuleLoader方法
  • 2017-05-30Angular的$http的ajax的请求操作(推荐)

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • Angularjs自定义指令实现三级联动 选择地理位置
    • angularjs 实现带查找筛选功能的select下拉框实例
    • Angularjs 基础入门
    • 深入理解Angularjs向指令传递数据双向绑定机制
    • AngularJS实现标签页的两种方式
    • 基于angularJS的表单验证指令介绍
    • AngularJS ng-table插件设置排序
    • Angular的Bootstrap(引导)和Compiler(编译)机制
    • Angular.js 4.x中表单Template-Driven Forms详解
    • AngularJS中的API(接口)简单实现

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有