【问题标题】:How to assign data-bind value to javascript variable如何将数据绑定值分配给javascript变量
【发布时间】:2014-11-25 21:02:59
【问题描述】:

asp.net 新手

        <div class="form-group">
            <div class="col-sm-5">
                <p>Showing results for FU <span data-bind="text: selectedFu() ? selectedFu().fuId : ''" /></p>
            </div>
        </div>
        @{
            var sfuId = "Bar";
        }

        @if (sfuId == "Bar") {
            <div class="form-group">
                <div class="col-sm-12">
                    <div class="warn">
                        <span data-bind="text: barDisclaimer"></span>
                    </div>
                </div>
            </div>
        }

有效,但如何分配 var sfuId = selectedFu() ? selectedFu().fuId。我已经尝试过 var sfuId = ", data-bind="if:, 和 ko.observable() 但似乎没有任何效果。

谢谢你tkestowicz。 knockoutjs.com 是一个很棒的网站。如果我弄明白了,我会通读并发布。

【问题讨论】:

    标签: javascript asp.net asp.net-mvc html razor


    【解决方案1】:

    标题(或代码)错误。这个:

        @{
            var sfuId = "Bar";
        }
    

    不是 JavaScript,它是用 Razor 语法编写的 C# 代码。看这个例子,你似乎想在 C# 下访问 JavaScript 对象。这是不可能的,因为 C# 代码是在 JavaScript 执行之前编译的。您只能做相反的事情 - 将 C# 值传递给 JS。

    我认为你误解了 Razor 的目的。它是一个服务器端模板引擎,这意味着所有代码在呈现在浏览器中之前都会执行。另一方面,Knockout 是一个 JavaScript(客户端)库。

    使用 KO 模板 (http://knockoutjs.com/documentation/template-binding.html) 代替 Razor 使其工作。

    【讨论】:

      【解决方案2】:

      我不知道 asp 或 c# 但在 javascript 中我是这样做的

      my_node = document.querySelector("some_node");
      
      // normal/safe method
      my_node.getAttribute("data-task");
      my_node.setAttribute("data-task", "new_value");
      
      // be modern
      my_node.dataset.task;
      my_node.dataset.task = "new_value";
      

      【讨论】:

        【解决方案3】:

        我在寻找 data-bind="visible Tkestowicz 的建议网站很有帮助。

                <div class="form-group">
            <div class="col-sm-5">
                <p>Showing results for FU <span data-bind="text: selectedFu() ? selectedPpo().fuId : ''" /></p>
            </div>
        </div>
        <div class="panel-body form-horizontal" data-bind="visible: selectedFu() ? selectedFu().fuId : false">
            <div class="form-group">
                <div class="col-sm-12">
                    <div class="warn">
                        <span data-bind="text: barDisclaimer"></span>
                    </div>
                </div>
            </div>
        </div>
        

        【讨论】:

          猜你喜欢
          • 2014-03-04
          • 2020-10-15
          • 1970-01-01
          • 2016-09-07
          • 2014-06-04
          • 1970-01-01
          • 1970-01-01
          • 2011-08-19
          • 1970-01-01
          相关资源
          最近更新 更多