加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Angular中的Date对象

发布时间:2020-12-17 06:58:29 所属栏目:安全 来源:网络整理
导读:有人可以解释为什么按下按钮时没有更新此插件中ng-model的输入? http://plnkr.co/edit/8JpyUVM8dY8aoV4fi5hC?p=preview HTML body ng-controller="MainCtrl" Using ng-model: input type="text" ng-model="myDate"br/ Using expression: {{ myDate }}br/ bu
有人可以解释为什么按下按钮时没有更新此插件中ng-model的输入?

http://plnkr.co/edit/8JpyUVM8dY8aoV4fi5hC?p=preview

HTML

<body ng-controller="MainCtrl">
    Using ng-model:  <input type="text" ng-model="myDate"><br/>
    Using expression: {{ myDate  }}<br/>
    <button ng-click="nextDay()">Next Day</button>
  </body>

JS

app.controller('MainCtrl',function($scope) {
  $scope.myDate = new Date();
  $scope.nextDay = function(){
    $scope.myDate.setDate($scope.myDate.getDate() + 1);
  };
});

解决方法

Working Plunker: http://plnkr.co/edit/ku8iy0YKvQfBdolg7cug?p=preview

将您的控制器更改为:

var app = angular.module('plunker',[]);

app.controller('MainCtrl',function($scope) {
  $scope.myDate = new Date();
  $scope.nextDay = function(){
     var newDate = new Date($scope.myDate.setDate($scope.myDate.getDate() + 1));
     $scope.myDate = newDate;
  };
});

与其他提到的一样,对实例的引用没有改变,因此Angular不知道它需要再次渲染它.通过完全更改Date对象,您将强制Angular呈现更改的模型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读