使用映射插件计算的knockout.js值-在数组中

使用映射插件计算的knockout.js值-在数组中,knockout.js,mapping,viewmodel,Knockout.js,Mapping,Viewmodel,我有以下viewmodel(到目前为止): 我的数据如下所示: { "result": { "stuff": [ { "foo": "bar", "important": "computeme", }, { "foo": "baz", "important": "computemetoo", } ], "otherstuff": [ ] } }

我有以下viewmodel(到目前为止):

我的数据如下所示:

{
  "result": {
    "stuff": [
      {
        "foo": "bar",
        "important": "computeme",
      },
      {
        "foo": "baz",
        "important": "computemetoo",
      }
    ],
    "otherstuff": [
    ]
  }
}
我看到的标准文档涵盖了嵌套关联数组,但没有太多关于规则数组的内容。在我的例子中,我想我需要一个函数来迭代“stuff”中的每个项并计算新值,例如,生成“computemefoo!”和“computemetofoo!”。我是个新手,对这一次有点迷茫

jsfiddle:
基本模型位于路径/2/您可以通过增加/3/、/4/等来查看我正在尝试的内容。

如果要更新值,您只需向viewmodel添加一个函数即可

比如:

self.update = function (x){
    return x() + 'foo!';
}
<ul data-bind="foreach: result.stuff">
    <li data-bind="text: $root.update(important)"></li>
</ul>
在HTML中,您可以使用
$root
调用viewmodel的根。这将导致如下结果:

self.update = function (x){
    return x() + 'foo!';
}
<ul data-bind="foreach: result.stuff">
    <li data-bind="text: $root.update(important)"></li>
</ul>

根据要求添加到帖子中-这是一个好主意。我觉得我把事情弄得太复杂了。