gpt4 book ai didi

knockout.js - 新的绑定(bind)预处理功能在 Knockout 3.0 中如何工作?

转载 作者:行者123 更新时间:2023-12-04 04:33:42 25 4
gpt4 key购买 nike

所以有一个新的binding pre-processing feature附带最新的 knockout 。它说随着 initupdate绑定(bind)可以具有 preprocess 的方法采用 value 的方法, name , 和 addBinding打回来。一切都很好,很整洁,但是

  • 这些怎么样valuename被解析?他们只是用逗号分隔吗?
  • 什么语法对他们来说是安全的?
  • 我可以期望将任意 JSON 文字正确提取为 value 的值吗?从绑定(bind)字符串?

  • 编辑

    正如我们所知,一个绑定(bind)字符串可以包含多个绑定(bind)表达式。那么 KO 是如何知道一个表达式何时结束而另一个表达式何时开始的呢?我们可以假设绑定(bind)表达式应该是一个用逗号分隔的有效键值对,并且在右侧有一个有效的 javascript 表达式,但是文档中的示例 #1 显示的情况并非如此。好吧,如果它与此不同,那是什么?

    最佳答案

    你得到 valuename作为字符串 其中包含您在 View 中绑定(bind)中所写的文本,因此不涉及解析。

    从文档中:

    value: the syntax associated with the binding value before Knockout attempts to parse it (e.g., for yourBinding: 1 + 1, the associated value is "1 + 1" as a string).

    name: the name of the binding (e.g., for yourBinding: 1 + 1, the name is "yourBinding" as a string).



    您可以轻松地创建一个简单的示例:
    ko.bindingHandlers.myFancyBinding = {
    preprocess: function (value, name, addBindingCallback) {
    console.log(value);
    console.log(name);
    return value;
    }
    }

    如果你像这样使用它:
    <div data-bind="myFancyBinding: 1+2+'some crazy expresssion'"></div>

    输出将是:
    1+2+'some crazy expresssion'
    myFancyBinding

    演示 JSFiddle .

    关于knockout.js - 新的绑定(bind)预处理功能在 Knockout 3.0 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20107481/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com