Knockout JS - 如何为可观察字段返回空字符串

时间:2015-12-14 00:25:02

标签: javascript jquery twitter-bootstrap knockout.js

我正在建立一个CRUD系统,用户可以从一个简单的表中添加,删除和编辑数据。我有一个模态表单,用于显示其他详细信息并添加新事件。目前,模态表单正确加载以进行编辑,但在尝试添加新事件时会出现问题。

经过一些调整后,问题似乎来自这条线:

    <script type="text/javascript" src="/js/jquery-1.2.6.min.js"></script>
    <script type="text/javascript">
            var map;
            var data;
            function initMap() {
                map = new google.maps.Map(document.getElementById('map'), {
                    center: {lat: -34.397, lng: 150.644},
                    zoom: 8
                });


                httpCall();
            }

            function httpCall($http) {
                $.ajax({
                    type: 'GET',
                    url: '<?php echo site_url('User/marks') ?>',
                    data: "data="+ data,
                    dataType: "json", 
                    success: function(response){
                            alert(data);
                            for (var i = 0, len = data.length; i < len; ++i) {
                                var marker = new google.maps.Marker({
                                    position: {
                                        lat: parseFloat(data[i].lat),
                                        lng: parseFloat(data[i].lng)
                                    },
                                    map: map
                                });
                            }
                        }
            })
            }

        </script>

这会破坏我的模态形式,因为我的observable会返回null(显然)。我希望它会返回如下内容:

self.currentIncident(null);

我相信这就是为什么我的模态会崩溃,因为我的模态与返回相混淆。有人知道一个简单的方法来返回空字符串吗?

"ID": "",
"Description": "",
"Incident": ""

这是jsfiddle:http://jsfiddle.net/rqwku4kb/12/

2 个答案:

答案 0 :(得分:2)

{}代替null,如下所示:

self.currentIncident({});

检查Fiddle

答案 1 :(得分:0)

您可以这样声明突发事件

function Incident(data) {
  var self = this;

  self.ID = -1;
  self.Description = ko.observable();
  self.Incident = ko.observable();

  if (!data) return;

  // initialize with 'data'
  self.ID = data.ID;
  self.Description(data.Description);
  self.Incident(data.Incident);
}

然后

    self.currentIncident(new Incident());