【问题标题】:pass observable from one view model to another in knockout.js在 knockout.js 中将 observable 从一个视图模型传递到另一个视图模型
【发布时间】:2018-01-18 20:29:19
【问题描述】:

在一个视图中,我有一个按钮可以导航到另一个视图“addWork”。 我想将一个可观察对象从视图模型传递给与 addWork 视图关联的视图模型。 我已经在视图模型的构造函数中添加了 addWork,我只是不确定还能做什么。

ko.applybinding 上的 url 动作如下,这个工作正常,我只需要修改,所以我传递了 observable。

"@Url.Action("AddWork", "Work")")

按钮绑定到这个函数:

   self.AddWork = function () {
            window.location.href = addWork;
        }

【问题讨论】:

  • 这需要进一步解释。您是否正在尝试将一个可观察对象从您的服务器端控制器传递到一个新的 html 视图?鉴于 @Url.Action 我假设您使用的是 asp.net MVC?
  • 是的,对于您的两个问题。我对 MVC / MVVM 还很陌生,并试图在我前进的过程中学习它。
  • 我认为这行不通。可观察对象纯粹是一个 javascript 概念,通常无法在被发送到服务器并返回时存活下来。你能解释一下为什么你需要 observable 而不仅仅是 observable 的内容吗?
  • 我想内容可以,老实说我不完全确定它是否应该是可观察的。我想要实现的只是将 id 从一个视图传递到另一个视图
  • 如果您知道 ID,可以将其放入您的 @Url.Action 语句中,例如 Url.Action("AddWork", "Work", new { id = myID });

标签: asp.net-mvc mvvm knockout.js


【解决方案1】:

observable 纯粹是一个 javascript 概念,通常无法在被发送到服务器并返回时继续存在。你最好只发送 observable 的内容而不是 observable 本身。

如果您只需要发送一个 ID,那么您可以使用 asp.net MVC 将其放入您的 @Url.Action 语句中,例如 Url.Action("AddWork", "Work", new { id = myID });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 2017-08-28
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多