1

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

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

var currency 获得以下值:“<”!-- ko text: Currency --">“<”!-- /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;
    }
4

1 回答 1

1

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

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

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

于 2017-04-25T08:37:31.070 回答