谈angularJs中的apply()

当触发事件click()及setTimeout(),$timeout这些要更新DOM要使用apply(),不然模板更新了,但DOM更新不了。  后台可以打印出来, 详细;http://blog.csdn.net/dm_vincent/article/details/38705099

还可以简单粗暴scope。scope.$apply()

    Delayed Message: {{message}}      
  angular.module('myApp',[]).controller('MessageController', function($scope) {  $scope.getMessage = function() {  setTimeout(function() {  $scope.message = 'Fetched after 3 seconds';  console.log('message:'+$scope.message);  }, 2000);  }  $scope.getMessage();  });  

不起作用,以下改善。

angular.module('myApp',[]).controller('MessageController', function($scope) {  $scope.getMessage = function() {  setTimeout(function() {  $scope.$apply(function() {  //wrapped this within $apply  $scope.message = 'Fetched after 3 seconds';   console.log('message:' + $scope.message);  });  }, 2000);  }  $scope.getMessage();  });  

事件类型;



{{message}}

var appd = angular.module("APP",[]);appd.directive("testDw", function(){return{//restrict:"A",//scope:true,restrict:"AE",template:"{{message}}",//replace:true,link:function(scope, element, attrs){element.bind("click", function(){//scope.$apply(function(){scope.message="这就对啦";console.log(scope.message)//})} )},}})

改善,


{{message}}

 

 

转载于:https://my.oschina.net/u/3427060/blog/1524840


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部