Javascript 敲除JS内部和外部绑定

Javascript 敲除JS内部和外部绑定,javascript,knockout.js,Javascript,Knockout.js,我想在使用knockout的外部元素中包含一个内部元素,这有可能吗 HTML: 这给了我一个错误: ReferenceError: Unable to process binding "text: function(){return innerText() }" Message: 'innerText' is undefined 我理解这个错误,因为外部模型不包含内部文本,因此它崩溃了 我的问题是,是否有一种适当/更好/正确的方法来拥有一个内在元素并使其在淘汰赛中发挥作用 注意:我不希望inn

我想在使用knockout的外部元素中包含一个内部元素,这有可能吗

HTML:

这给了我一个错误:

ReferenceError: Unable to process binding "text: function(){return innerText() }"
Message: 'innerText' is undefined
我理解这个错误,因为外部模型不包含内部文本,因此它崩溃了

我的问题是,是否有一种适当/更好/正确的方法来拥有一个内在元素并使其在淘汰赛中发挥作用

注意:我不希望innerModel成为outerModel的成员/子级,因为它们只是出于布局目的而位于这个HTML布局中,但不一定相关

谢谢你的帮助

谢谢

  • 通常情况下,最好的办法是使内部内容成为外部内容的属性,然后正常绑定(可能使用
    )。例如:

    …然后:

    <div id='id1'>
        <span data-bind="text: outerText()"></span>
        <div id='id2' data-bind="with: inner">
            <span data-bind="text: innerText()"></span>
        </div>
    </div>
    
    
    
    如果下面的答案回答了您的问题,即堆栈溢出的工作方式,您可以通过单击旁边的复选标记来“接受”答案。但前提是它真的回答了这个问题。如果不是的话,可能最好发表评论,说什么还不清楚。
    ReferenceError: Unable to process binding "text: function(){return innerText() }"
    Message: 'innerText' is undefined
    
    var innerModel = function() {
        this.innerText = ko.observable("Inner Model - Inner Text");
    };
    var outerModel = function() {
        this.outerText = ko.observable("Outer Model - Outer Text");
        this.inner = ko.observable(new innerModel());
    };
    ko.applyBindings(new outerModel(), document.getElementById('id1'));
    
    <div id='id1'>
        <span data-bind="text: outerText()"></span>
        <div id='id2' data-bind="with: inner">
            <span data-bind="text: innerText()"></span>
        </div>
    </div>