无法更新值来自点国

时间:2016-05-25 22:23:13

标签: javascript angularjs

在我的页面上,我正在渲染表单,其中数据来自api调用 数据看起来像:

    {
  "id": 22,
  "eventTypeId": 1,
  "occuredDate": "2016-05-25T00:00:00",
  "title": "event refresh",
  "description": "check refresh table",
  "studyId": 4,
  "statusId": 5,
  "severityId": 2,
  "priorityId": 3,
  "study.id": 4,
  "study.name": "Study Y",
  "status.id": 5,
  "status.name": "Closed"
}

HTML:

    <form style="padding: 15px" ng-submit="submitForm()">
          <div class="form-group row">
               <div ng-repeat="k in rowKeys | filter: '!id'" ng-model="rowValue">
               <label for="rowValue"  class="col-sm-2">
               {{k | hide:'.name'}}:</label>
<div class=" col-sm-2" >
              <input class="form-control rowValue"  id="rowValue" ng-model="rowData[k]" ng-disabled="isDisabled()"/>
             </div>
            </div>
         </div>
         <button type="submit" class="btn btn-default" ng-if="rowData" >Submit</button>
</form>

我的问题是,当我编辑“标题”或“描述”等字段时,一切正常,但当我尝试编辑“study.name”或“status.name”等字段时,只需刷新页面即可没有提供任何更新。 Angular手表工作正常,我在控制台中看到价值已经更新,所以有人可以帮我找到我的错误吗?

我的提交功能:

$scope.submitForm = function() {

        $scope.$watch('rowData', function(newValue, oldValue) {
                console.log('being watched oldValue:', oldValue, 'newValue:', newValue);
            }, true);

        $http({
            method  : 'PUT',
            url     : $scope.globalUrl + $scope.id,
            data    : $scope.rowData //form
        })
        .then(function (res) {
                return res;
            })
            .then(function (){
                $('#table').bootstrapTable('refreshOptions', {
                    'url': $scope.globalUrl
                });
            })
    };

我的加载功能

$scope.load = function (){
$http({
                    method: "GET",
                    url: $scope.globalUrl + $scope.id
                }).then(function success(response) {
                    $scope.rowData = response.data;
                }, function error(response) {
                    console.log("It has happend error in response")
                });
}

1 个答案:

答案 0 :(得分:2)

当你的钥匙上有一个圆点时,你需要使用括号表示法:

obj['study.name']

这是一个简单的例子:

https://jsbin.com/fihogu/1/edit?js,console