knockout.js - 如何从子模型调用父方法(knockout)

标签 knockout.js

我认为标题非常具有误导性,但问题很简单。

好吧,让我来正确看待这一点 - fiddler .

我有三个模型:BoardViewModel、List、Card

好吧,长话短说,list 模型创建了一个名为 cards 的数组。
self.cards = ko.observableArray(cards);(第 79 行)

Knockout 反过来将 myObservableArray.remove() 公开为 ko.observableArray() 的一部分。

这反过来又允许我放弃像这样达到其目的的卡片
self.cards.remove(card);(第 99 行)

问:有什么办法可以从card模型中调用remove()吗?
或者我是否需要在 List 模型中定义另一个函数并传递 card 对象,以便能够进行与第 99 行相同的调用?
self.archive = 函数(卡)(第 68 行)

提示:点击编辑链接/按钮查找存档按钮

最佳答案

其他答案都很好,但似乎您正在以一种令人困惑的方式解决问题。将卡片作为一个类的整个想法是,它不需要知道包含它的数组(如果它包含在数组中)。

在 View 中处理此问题的首选方法是,如果您的卡片上有“删除”按钮,则在 View 中写入以下内容:

<div data-bind="foreach: cards">
    <div class="card">
    <div class="content"> ... </div>
    <button data-bind="click: $parent.cards.remove">Remove</button>
  </div>
</div>

这样,您就可以将卡片类与其容器分开并且在此特定 View 中以一种优雅的方式处理从其容器中删除卡片的操作。

关于knockout.js - 如何从子模型调用父方法(knockout),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26973855/

相关文章:

javascript - Bootstrap 单选标签不适用于 Knockout

knockout.js - KnockoutJS json 对象/可观察 "visible"绑定(bind)不起作用

jquery - 如何在 knockout 中显示带有悬停文本的警告图标,以警告文本框中输入的重复记录

JavaScript 未在使用 knockout 渲染的 html 文件中执行

knockout.js - 覆盖特定输入的全局验证绑定(bind)验证选项

javascript - 使用复选框构建表并使用 Knockout.js 绑定(bind)到数据

javascript - 以字符串形式获取属性名称而不是属性值?

javascript - knockout - 动态生成 Bootstrap 样式

knockout.js - 访问嵌套 'foreach' 中的外循环属性

jquery - 如果 iframe src 加载失败,则捕获错误。错误 : -"Refused to display ' http://www. google.co.in/' in a frame.."