gpt4 book ai didi

javascript - 与函数和变量的多重Knockout绑定(bind)

转载 作者:行者123 更新时间:2023-12-03 08:09:36 25 4
gpt4 key购买 nike

多重 knockout 绑定(bind)。

我只想使用一个应用绑定(bind)而不是两个应用绑定(bind)。一种是变量,另一种是函数。我也在使用 requireJS。

HTML:

<button id= "Hand" name="Hand"
data-bind="click: Handler2">
</button>

KnockoutJS

function (ko, $)
{
function DM1ViewModel() {
var self = this;
self.bId = ko.observable('TEST456');

}
$('#hide').hide();


var DMD2 = {
Handler2: function() {

window.location='http:www.google.com';
}
};

ko.applyBindings(new DM1ViewModel(), document.getElementById('Container'));
ko.applyBindings(DMD2);
});

最佳答案

就目前情况而言,确实没有理由在 DMD2 对象上应用绑定(bind),因为那里没有任何可观察对象。

但是,为了更笼统地回答您的问题,您有两种选择:

  1. 针对不包含容器元素且尚未包含在容器元素中的元素调用 DMD2 的 applyBindings。

Javascript:

// DM1ViewModel is the same
var DMD2ViewModel = function() {
this.Handler2 = function() {
window.location='http:www.google.com';
};
}
ko.applyBindings(new DM1ViewModel(), document.getElementById('DM1Container'));
ko.applyBindings(new DMD2ViewModel(), document.getElementById('DMD2Container'));

HTML

<div id="Container">
<div id="DM1Container">
<h2 data-bind="text: bId"></h2>
</div>
<div id="DMD2Container">
<h2 data-bind="click: Handler2">Click me</h2>
</div>
</div>
  • 创建一个父 View 模型,将每个现有 View 模型作为可观察对象,并使用 with binding
  • Javascript:

    var PageViewModel = function(){
    this.dm1 = ko.observable(new DM1ViewModel());
    this.dm2 = ko.observable(DMD2); // currently isn't a function, so can't call new
    }

    ko.applyBindings(new PageViewModel(), document.getElementById('Container'));

    在你的html中:

    <div id="Container">
    <div data-bind="with: dm1">
    <h2 data-bind="text: bId"></h2>
    </div>
    <div data-bind="with: dm2">
    <h2 data-bind="click: Handler2">Click me</h2>
    </div>
    </div>

    关于javascript - 与函数和变量的多重Knockout绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34201908/

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