【问题标题】:Dynamically set binding in data-bind在数据绑定中动态设置绑定
【发布时间】:2012-12-18 20:16:02
【问题描述】:

在 knockout.js 中,我们有一个最基本的文本绑定示例:

Today's message is: <span data-bind="text: myMessage"></span>

<script type="text/javascript">
    var viewModel = {
        myMessage: ko.observable() // Initially blank
    };
    viewModel.myMessage("Hello, world!"); // Text appears
</script>

这是直接来自教程http://knockoutjs.com/documentation/text-binding.html 如果我想要一个定义实际绑定属性的变量怎么办。这可能看起来像这样:

Today's message is: <span data-bind="myBinding: myMessage"></span>

<script type="text/javascript">
    var viewModel = {
        myMessage: ko.observable(), // Initially blank
        myBinding: ko.observable(), // Initially blank
    };
    viewModel.myMessage("text");
    viewModel.myMessage("Hello, world!"); // Text appears
</script>

上面的代码显然是错误的,但正确的情况是什么?

我正在研究 ko.applyBindingsToNode (Can I dynamically bind element inside custom binding?) 之类的东西,但这次 Google FU 完全让我失望了,因为我发现的大部分内容是将绑定应用于动态构建的元素,而不是动态应用动态绑定类型.

【问题讨论】:

    标签: javascript knockout.js


    【解决方案1】:

    您不能将可观察对象用作自定义绑定类型。 Observable 用于存储数据。

    您可以使用Custom BindingComputed Observables 获得所需的功能。就个人而言,如果这是您需要一次的特殊事物,请使用 Computed Observable。否则,请使用自定义绑定。

    【讨论】:

    • 宾果游戏!我用计算出的可观察值弄明白了 :)
    猜你喜欢
    • 2011-05-05
    • 2017-06-19
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 2011-01-23
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多