0

在 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 之类的东西(我可以在自定义绑定中动态绑定元素吗?)但是这次 Google FU 完全让我失望了,因为我发现的大部分东西都是将绑定应用于动态构建的元素而不是应用动态动态绑定类型。

4

1 回答 1

1

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

You can get the functionality you want by using either a Custom Binding or a Computed Observables. Personally, if this is something special that you need one time, then use a Computed Observable. Otherwise, use a custom binding.

于 2012-12-18T12:16:02.260 回答