$ scope。$ watch获取未定义的新旧值angularjs

时间:2017-12-11 09:39:15

标签: javascript angularjs

    <input
                  type="text"
                  datetime-picker
                  date-format="dd-MM-yyyy hh:mm a"
                  future-only
                  readonly
                  name="flg_{{user.user_id}}"
                  ng-model="orderItems[user.user_id].flg_time"
                  ng-click="saveOrder(user, orderItems[user.user_id])"
                  >
    <input
                  type="text"
                  datetime-picker
                  date-format="dd-MM-yyyy hh:mm a"
                  future-only
                  name="dep_{{user.user_id}}"
                  ng-model="orderItems[user.user_id].dep_time"
                  ng-click="saveOrder(user, orderItems[user.user_id])"
                  >

    var userInfo = auth.getCurrentUser().children;

     angular.forEach(userInfo, function(item, key){
      $scope.$watch('[orderItems[item.user_id].flg_time, orderItems[item.user_id].dep_time]', function(newVal, oldVal){
      console.log("N", newVal); // undefined
      console.log("O", oldVal); // undefined

      if (newVal !== oldVal && typeof oldVal !== 'undefined') {

    var orderItems = {
        'order_id' : $scope.order.order_id,
        'flg_time' : newVal[0],
        'dep_time' : newVal[1],
    }
    $scope.saveOrder(item, orderItems);
      }
    }, true);

  });

我想将新值的值设置到原始文本框中,但它始终表示旧值和新值未定义它应该返回输入值,请指导其中的错误。

提前致谢

1 个答案:

答案 0 :(得分:0)

而不是$ scope。$ watch使用$ scope。$ watchcollection,因为$ watch只使用1个元素,如果你去数组元素比watchollection更好 希望它有用。