javascript - dotVVM 将值从数据绑定(bind)的 DOM 元素传递到 JavaScript 变量以进行可视化

标签 javascript c# knockout.js data-binding dotvvm

我正在创建一个用于数据可视化的 dotVVM webApp,但遇到了一些问题:

由于我的 view(html) 和 viewModel(c#) 之间的数据绑定(bind),我只能通过这些 DOM 元素获得 knockout 注释字符串。 (dotVVM 使用 Knockout.js 进行数据绑定(bind))

var 货币获得以下值:“<”!-- ko text:货币-->“<”!--/ko --">”并显示在我的输入字段中,id 为“1” .

我需要将正确的值(在本例中为 40 或初始值 400)放入 javascript-var 中以进行可视化。

        var currency = document.getElementById("textBox").innerHTML;
        document.getElementById("1").value= currency;
        
 <div ID="container" style="width:100%; height:400px;"></div>

    <p ID="textBox">{{value: Currency}}</p>
    <input ID="1" value="" style="width: 900px" /
    
    

这是我的 ViewModel(只是为了演示目的而简单)

    /// <summary>
    /// Gets or sets the active page. This is used in the top menu bar to 
    highlight the current menu item.
    /// </summary>
    public virtual string ActivePage => Context.Route.RouteName;

    public int Currency { get; set; } = 400;

    public void currency()
    {                    
            Currency = 40;
    }

最佳答案

首先,您可以使用<dot:TextBox Text="{value: Currency}" />获得 <input type="text">绑定(bind)到Currency属性。

如果您无法使用此功能并且不想编写自己的控件,则可以像在 Knockout.js 中一样访问数据上下文 - <input type="text" data-bind="value: Currency" />TextBox 相同你可以使用 ko.dataFor(element)访问元素的 View 模型或 ko.contextFor(element)使用 $parent, $index, .... 访问 knockout 上下文

这是在 Javascript 中获取货币的方法: var currency = knockout.dataFor(document.getElementById("textBox")).Currency();

关于javascript - dotVVM 将值从数据绑定(bind)的 DOM 元素传递到 JavaScript 变量以进行可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43591721/

相关文章:

javascript - 使用 knockoutJS 中的函数将 CSS 添加到 div

javascript - 没有 React 的类似 React 的编程

javascript - 输入元素不应从受控切换到不受控 ReactJs 错误

c# - 如何检测安装的 MS-Office 版本?

c# - 在 C# 中将按钮添加到 TabControl 选项卡

c# - 如何使用 Xamarin Form 将流形式的图像上传到多部分休息服务

javascript - 如何在 JavaScript 和 FireFox 中获取 innerXml 或 outerXml

javascript - HTML输入按钮改变内容

javascript - KO 的组件层次结构(或缺乏)

knockout.js - 为什么indexOf不起作用?