在函数和$ apply中更新$ scope不起作用

时间:2017-02-13 08:15:11

标签: angularjs scope

我有更新输入值的问题。我有$ scope.date_from,它显示在input [type =“data”]中。我想通过单击某个按钮更新其中的值。我的代码在这里:

$scope.update_date = function (date_from, date_to) {
        $scope.date_from=date_from;
        $scope.date_to=date_to;
        console.log($scope.date_from);
        $scope.$apply(function() {
            $scope.date_from=date_from;
            $scope.date_to=date_to;
        });
    }

问题是在点击我的按钮后输入[type =“date”]中的值会更新,但是没有显示(我只看到代码中的更改)。我的按钮看起来像这样:

<a href="#" ng-click="update_date('2017-02-13', '2017-02-13')">Today</a>

1 个答案:

答案 0 :(得分:0)

您必须将日期string转换为Date个对象。无需$scope.$apply()

就像这样:

$scope.update_date = function(date_from, date_to) {
    $scope.date_from = new Date(date_from);
    $scope.date_to = new Date(date_to);
  }

这是一个有效的fiddle