angularjs – 一次绑定:更新模型并重新渲染视图

前端之家收集整理的这篇文章主要介绍了angularjs – 一次绑定:更新模型并重新渲染视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道是否可能,使用角度一次性绑定,在模型更新后完全重新渲染视图/模板,也可以通过重新编译模板.
例如,在按下按钮时,可能在反应方式中工作:我更新模型并明确强制更新视图.
基本上这就是我想要实现的目标:
  1. // controller
  2. angular.module('app',[]).controller('AppCtrl',function($scope) {
  3. $scope.items = [
  4. {id: 1},{id: 2},{id: 3}
  5. ];
  6.  
  7. $scope.addAndRefresh = function() {
  8. $scope.items.push({id: 4});
  9. // manually call render logic here???
  10. };
  11. });
  12.  
  13.  
  14. <!-- HTML template -->
  15. <div ng-repeat="item in ::items">
  16. {{item.id}}
  17. </div>
  18. <button ng-click="addAndRefresh()">Add</button>

通过单击“添加”按钮,我想刷新视图以查看新添加的项目.

我试图找出一些方法来优雅地做到这一点.我希望框架内置一些内容来刷新一次性绑定.我想出的就是使用ngIf删除我想要刷新的元素并将其添加回去.

这是一个演示.单击“添加项目”按钮,您将看到列表未刷新对重复的一次性绑定.检查刷新值并再次单击,项目将更新:

  1. var app = angular.module('demo',[]);
  2.  
  3. app.controller('RefreshCtrl',function($scope,$timeout) {
  4. var counter = 4;
  5.  
  6. $scope.visible = true;
  7.  
  8. $scope.items = ['Item1','Item2','Item3'];
  9.  
  10. $scope.addItem = function() {
  11.  
  12. if ($scope.refresh) {
  13. $scope.visible = false;
  14. }
  15.  
  16. $scope.items.push('Item' + counter);
  17.  
  18. counter++;
  19.  
  20. $timeout(function() {
  21. $scope.visible = true;
  22. });
  23. };
  24.  
  25. });
  1. <script src="https://code.angularjs.org/1.3.17/angular.js"></script>
  2. <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
  3.  
  4. <div ng-app="demo" ng-controller="RefreshCtrl" class="container">
  5. <button class="btn btn-default" ng-click="addItem()">Add Item</button>
  6. <input type="checkBox" ng-model="refresh" />Refresh Values
  7. <div ng-if="visible">
  8. <h3 ng-repeat="item in ::items">{{item}}</h3>
  9. </div>
  10.  
  11. <p>Items Array: {{items}}</p>
  12. </div>

猜你在找的Angularjs相关文章