在淘汰赛中,我可以得到可观测量的名称

时间:2016-05-04 01:21:27

标签: javascript jquery knockout.js

只是想知道在淘汰赛中是否有办法获得模型可观察的名称?

在小提琴中https://jsfiddle.net/othkss9s/1/

我有一个可观察的数组,我用来创建一个表。我有一个用于存储表头的数组。有没有办法从产品对象本身获取表头,而不必有一个单独的数组来存储表头?就像从模型本身获取名称,价格和标签一样?

<table>
<thead>
  <tr data-bind='foreach: headers'>
    <th data-bind='text: $data'></th>
  </tr>
</thead>
  <tbody data-bind='foreach: shoppingCart'>
    <tr>
      <td data-bind='text: name'></td>
      <td data-bind='text: price'></td>
      <td>
        <!-- Add a list of tags. -->
        <ul data-bind='foreach: tags'>
          <li data-bind='text: $data'></li>
        </ul>
      </td>
    </tr>
  </tbody>
</table>

这是html表。

$result = json_decode(file_get_contents("http://www.website.asmx/FetchData?=".$data));

1 个答案:

答案 0 :(得分:0)

这是提取可观察属性的一种方法

function Product(name, price, tags) {
  this.name = ko.observable(name);
  this.price = ko.observable(price);
  tags = typeof(tags) !== 'undefined' ? tags : [];
  this.tags = ko.observableArray(tags);
}

function model() {
  var self = this;
  this.shoppingCart = ko.observableArray([]);
  this.headers = ko.observableArray([]);
};

var myViewModel = new model();

$(document).ready(function() {
  ko.applyBindings(myViewModel);
  myViewModel.shoppingCart.push(
     new Product("Buns", 1.49, ['Baked goods', 'Hot dogs']),
     new Product("Cups", 2.00, ['Paper Products', 'Drinks']),
     new Product("Plates", 1.50, ['Paper Products'])
  );
  var product = myViewModel.shoppingCart()[0];
  for (var key in product) {
    if (product.hasOwnProperty(key)) {
        myViewModel.headers.push(key);
    }
  }
});

https://jsfiddle.net/brianlmerritt/t2f43qov/7/

ps - 您可能希望将字段名称更改为this.Name等,或者在推送之前将密钥的第一个字母大写为