更新值无效

时间:2015-10-15 15:02:32

标签: javascript angularjs lokijs

我正在尝试对值执行更新但是,分配给它的新值绑定到范围值但不会更改,当我编辑时,它保存为原始empty
崩溃

$scope.showDepositUpdate = function(birthday) {
        $scope.depositValue="one";
        $scope.birthday = birthday;
        $scope.action = 'deposit';
        $scope.isAdd = false;
        $scope.showUpdateModal = true;
    };
$scope.updateDeposit = function() {
            $scope.birthday.Name = $scope.depositValue;
            StoreFactory.updateBirthday($scope.birthday);
            $scope.depositValue='';
            newValue =""
            $scope.showUpdateModal = false;

    };

但是scope.depositValue不会根据视图上的值更新它,它总是concat到“”,这是我的视图

<form class="form-inline" ng-show="showUpdateModal">
            <h2 class="title">{{ action }} Birthday</h2>
            <div class="form-group">
                <input type="text" class="form-control"  ng-model="birthday.Name" placeholder="name" placeholder="Jane Doe">
            </div>
            <div class="form-group">
                <input type="text" class="form-control"  ng-model="depositvalue" placeholder="name" placeholder="deposit">
            </div>
            <button ng-click="updateDeposit()" class="btn btn-default btn-lg btn-rounded">Save</button>
  </form>

<tr ng-repeat="birthday in birthdays">
            <td>{{ birthday.Name }}</td>
            <td>{{ birthday.Date }}</td>
            <td> <button class="btn btn-info btn-sm btn-rounded" ng-click="showDepositUpdate(birthday)">deposit</button>

2 个答案:

答案 0 :(得分:1)

在您的函数$scope.updateDeposit中,您将变量depositValue的值设置为“”。 $scope.depositValue='';。也许这是你的问题?

我已经做了一个snipet向你展示。

看看它是不是你想要的。

var $scope = {};

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

var StoreFactory = {
  updateBirthday: function(){return true} // JUST A MOCKUP
};

myApp.controller('myCtrl', ['$scope',
  function($scope) {

    $scope.showDepositUpdate = function(birthday) {
      $scope.depositValue = "one";
      $scope.birthday = birthday;
      $scope.action = 'deposit';
      $scope.isAdd = false;
      $scope.showUpdateModal = true;
    };
    $scope.updateDeposit = function() {
      $scope.birthday.Name = $scope.depositValue;
      StoreFactory.updateBirthday($scope.birthday);
      $scope.depositValue = '';
      newValue = ""
      $scope.showUpdateModal = false;

    };

  }
]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">

  <form class="form-inline" ng-show="showUpdateModal">
    <h2 class="title">{{ action }} Birthday</h2>
    <div class="form-group">
      <input type="text" class="form-control" ng-model="birthday.Name" placeholder="Jane Doe">
    </div>
    <div class="form-group">
      <input type="text" class="form-control" ng-model="depositvalue" placeholder="deposit">
    </div>
    <button ng-click="updateDeposit()" class="btn btn-default btn-lg btn-rounded">Save</button>
  </form>

  <tr ng-repeat="birthday in birthdays">
    <td>{{ birthday.Name }}</td>
    <td>{{ depositvalue }}</td>
    <td>
      <button class="btn btn-info btn-sm btn-rounded" ng-click="showDepositUpdate(birthday)">deposit</button>
    </td>
  </tr>

答案 1 :(得分:0)

您是否尝试过工厂中值的console.log()?那里的价值是什么?

我曾经遇到过这样的问题,那是因为(提到你的问题)

acct_

只是对$scope.birthday.Name 的引用,因此您传递对函数调用($scope.depositValue)后更改的函数的引用。 很高兴知道$scope.depositValue = ''实际上做了什么。