在ko.applyBindings </span>之后找到<span>值

时间:2014-03-20 10:44:11

标签: javascript knockout.js

我使用knockout.js从webapi获取一些值,然后得到结果(以跨度为单位)我试图在另一个地方使用(在表格行中输入)。结果我以这种方式显示:

<h3 data-bind="foreach: book">
    <span data-bind="text: Hotel" class="label label-info"/>
    <span data-bind="text: Номер" class="label label-info"/>
    <span class="label label-info" data-bind=" text: Фамилия"/>
    <span class="label label-info ad" data-bind=" text: Колчел"/>
    <span class="label label-info ch" data-bind=" text: Дети"/>
</h3>

这是淘汰赛代码:

    <script>
            function BookViewModel(baseUri) {
                var self = this;
                self.Номер = ko.observable("");
                self.Колчел = ko.observable("");
                self.Дети = ko.observable("");
                self.Фамилия = ko.observable("");
                self.Hotel = ko.observable("");
                var book = {
                    Номер: self.Номер,
                    Колчел: self.Колчел,
                    Дети: self.Дети,
                    Фамилия: self.Фамилия,
                    Hotel: self.Hotel
                };
                self.book = ko.observable();
                self.books = ko.observableArray();
                $.getJSON(baseUri, self.book);
            }
            $(document).ready(function () {
                var url = location.href.split("/")
                var baseUri;
                if (url[4].toString = 'x') {
                    baseUri = '/api/xTourist/' + url[5];
                }
                else if (url[4].toString = 'y') {
                    baseUri = '/api/yTourist/' + url[5];
                }
                ko.applyBindings(new BookViewModel(baseUri));
    //This is how I'm trying to read result and use this result in input field in the other table.
 var ad = $("span.ad").val();
            var ch = $("span.ch").val();
                $("#gvOrders tr input.pax_ad").each(function () {
                    $(this).val(ad);
                });
                $("#gvOrders tr input.pax_ch").each(function () {
                    $(this).val();
                });
            });
        </script>

不幸的是,这个var是不受约束的。在ko已经应用绑定之后,我真的不明白为什么值不能被重写。

1 个答案:

答案 0 :(得分:0)

knockout documentation非常好。我建议你从那里开始帮助更好地理解淘汰赛是如何运作的。它真的会为你节省一些时间和挫折感。

对于$ .getJSON调用,documentation有很多信息和示例。