最近很多小伙伴都在问AngularJS如何知道变量何时更改?AngularJS脏检查如何工作?和angular变更检测这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展Angular
最近很多小伙伴都在问AngularJS如何知道变量何时更改?AngularJS脏检查如何工作?和angular 变更检测这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展AngularJS + JQuery:如何使动态内容在angularjs中工作、AngularJS JQuery:如何获得动态内容在angularjs中工作、angularjs – Angular $q.when如何工作?、angularjs – Angular.js如何更改元素css类点击和删除所有其他等相关知识,下面开始了哦!
本文目录一览:- AngularJS如何知道变量何时更改?AngularJS脏检查如何工作?(angular 变更检测)
- AngularJS + JQuery:如何使动态内容在angularjs中工作
- AngularJS JQuery:如何获得动态内容在angularjs中工作
- angularjs – Angular $q.when如何工作?
- angularjs – Angular.js如何更改元素css类点击和删除所有其他
AngularJS如何知道变量何时更改?AngularJS脏检查如何工作?(angular 变更检测)
我正在阅读一些文章,以进一步了解AngularJS的工作原理。
我不理解的术语之一是Dirty Checking
。
究竟是什么?看起来像观察者模式,但显然更好。
你能帮我理解吗?
编辑:它也可以对谁想要了解更多有关观看的人有用的这段视频从swiip在NgEurope一些年前。
答案1
小编典典Angular定义了所谓的摘要循环的概念。此循环可以视为一个循环,在此循环中Angular检查所有$
scope监视的所有变量是否有任何更改。因此,如果在控制器中定义了$
scope.myVar且此变量被标记为要监视,那么您将明确告诉Angular在循环的每次迭代中监视myVar的更改。
此“ digest
”也称为“脏污检查”,因为在某种程度上,它会 扫描 范围以进行更改。我不能说这是比可观察的模式好还是坏。这取决于您的需求。
一些链接:
- Angular文档
- 有关Angular范围的博客文章
AngularJS + JQuery:如何使动态内容在angularjs中工作
我正在使用jQuery和AngularJS开发Ajax应用程序。
当我使用jQuery的html
功能更新div的内容(包含AngularJS绑定)时,AngularJS绑定不起作用。
以下是我正在尝试执行的代码:
$(document).ready(function() { $("#refreshButton").click(function() { $("#dynamicContent").html("<button ng-click=''count = count + 1'' ng-init=''count=0''>Increment</button><span>count: {{count}} </span>") });});</style><script src="http://docs.angularjs.org/angular-1.0.1.min.js"></script><style>.ng-invalid { border: 1px solid red;}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script><div ng-app=""> <div id=''dynamicContent''> <button ng-click="count = count + 1" ng-init="count=0"> Increment </button> <span>count: {{count}} </span> </div> <button id=''refreshButton''> Refresh </button></div>
我在具有ID的div内包含动态内容#dynamicContent
,并且具有一个刷新按钮,当单击刷新时,该按钮将更新该div的内容。如果不刷新内容,增量将按预期工作,但是刷新后,AngularJS绑定将停止工作。
这在AngularJS中可能无效,但是我最初使用jQuery构建了应用程序,后来又开始使用AngularJS,因此无法将所有内容都迁移到AngularJS。非常感谢在AngularJS中实现此功能的任何帮助。
答案1
小编典典您需要$compile
先将HTML字符串插入HTML,然后再将其插入DOM中,以便angular有机会执行绑定。
在您的小提琴中,它看起来像这样。
$("#dynamicContent").html( $compile( "<button ng-click=''count = count + 1'' ng-init=''count=0''>Increment</button><span>count: {{count}} </span>" )(scope));
显然,$compile
必须将其注入控制器才能正常工作。
在$compile
文档中阅读更多内容。
AngularJS JQuery:如何获得动态内容在angularjs中工作
当我使用jQuery的html函数更新div的内容(其中包含AngularJS绑定)时,AngularJS绑定不工作。
这是一个JSFiddle版本的我想要做的。
我有一个动态内容在一个div与ID #dynamicContent,我有一个刷新按钮,将更新此div的内容,当刷新点击。增量工作原理如果我不刷新内容,但刷新后,AngularJS绑定停止工作。
这可能不是有效的AngularJS,但我最初用jQuery构建应用程序,并开始使用AngularJS后,所以我不能迁移所有的AngularJS。任何帮助获得这工作在AngularJS非常感谢。
在你的小提琴,它会看起来像这样。
$("#dynamicContent").html( $compile( "<button ng-click='count = count + 1' ng-init='count=0'>Increment</button><span>count: {{count}} </span>" )(scope) );
显然,$ compile必须注入到你的控制器中才能工作。
阅读更多在$compile
documentation。
angularjs – Angular $q.when如何工作?
我试图分析如何$ http工作,并发现这:
var promise = $q.when(config);
这里是来自Chrome控制台的配置对象:
Object {transformRequest: Array[1],transformResponse: Array[1],cache: Object,method: "GET",url: "/schedule/month_index.html"…} cache: Object headers: Object method: "GET" transformRequest: Array[1] transformResponse: Array[1] url: "/schedule/month_index.html" __proto__: Object
接下来发生什么?这个对象如何解决或拒绝?
从文档:
Wraps an object that might be a value or a (3rd party) then-able promise into a $q promise. This is useful when you are dealing with an object that might or might not be a promise,or if the promise comes from a source that can’t be trusted.
angularjs – Angular.js如何更改元素css类点击和删除所有其他
<span id="1" ng-ng-click="tog=my-class"></span> <span id="2" ng-ng-click="tog=my-class"></span>
干杯!
function MyController ($scope) { $scope.collection = ["Item 1","Item 2"]; $scope.selectedindex = 0; // Whatever the default selected index is,use -1 for no selection $scope.itemClicked = function ($index) { $scope.selectedindex = $index; }; }
然后我的模板看起来像这样:
<div> <span ng-repeat="item in collection" ng-https://www.jb51.cc/tag/dind/" target="_blank">dindex }" ng-click="itemClicked($index)"> {{ item }} </span> </div>
仅供参考$ index是ng-repeat指令中的一个魔术变量。
您可以在指令和模板中使用同样的示例。
这里是一个工作plnkr:
http://plnkr.co/edit/jOO8YdPiSJEaOcayEP1X?p=preview
关于AngularJS如何知道变量何时更改?AngularJS脏检查如何工作?和angular 变更检测的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于AngularJS + JQuery:如何使动态内容在angularjs中工作、AngularJS JQuery:如何获得动态内容在angularjs中工作、angularjs – Angular $q.when如何工作?、angularjs – Angular.js如何更改元素css类点击和删除所有其他的相关知识,请在本站寻找。
本文标签: