0

我正在使用 Knockout.js,试图弄清楚如何解析作为其点击处理程序的一部分传递的数据对象的属性。到目前为止,我只能找到/查看与对象关联的函数的文本定义。

例如,在使用 Chrome 调查点击绑定传递的数据对象时,我只能找到:

> data.CityId.toString
function toString() { [native code] }

> data.CityId.toString()
"function b(){if(0<arguments.length){if(!b.equalityComparer||!b.equalityComparer(d,arguments[0]))b.H(),d=arguments[0],b.G();return this}r.T.Ha(b);return d}"

该程序:

该程序列出了几个城市,单击元素时,我想调用一个函数来更新数据 - 从视图模型实例中传入一个参数。

虽然我使用的是映射插件,但视图模型实际上是:

  • 城市编号
  • 城市名

调用该方法的 HTML 模板:

   <div data-bind="click: function(data, event) { UpdateForCity(data, event); }">
      <span data-bind="text: CityName"></span>
    </div>

要调用的函数:

function UpdateForCity(data, event) {
    alert('CityId: ' + data.CityId); // This is the part where I'd like to resolve the value
}

该函数接收该值,但到目前为止,所有试图找到解决该属性的方法的尝试都没有成功。如何解析上面示例中的 CityId 属性?(我是否误解了 MVVM/knockout 模式中的任何内容?)

谢谢。

4

2 回答 2

0

原来有一个实用方法可以做到这一点:

var cityId = ko.utils.unwrapObservable(data.CityId);

看起来也可以将一个函数附加到视图模型项的每个实例,但这需要更深入地了解映射插件的配置......

于 2012-04-24T09:19:42.453 回答
-1

只是提供一个由 Ryan Niemeyer 创建的小提琴示例,我现在指的是解决我的几个淘汰赛问题。这是小提琴的链接:http: //jsfiddle.net/rniemeyer/vdcUA/

如果您需要更多信息,您也可以查看 knockmeout 网站

希望这可以帮助

于 2012-04-24T07:25:50.760 回答