KnockoutJS 和 c# 视图

Posted

技术标签:

【中文标题】KnockoutJS 和 c# 视图【英文标题】:KnockoutJS and c# view 【发布时间】:2020-07-09 13:28:33 【问题描述】:

也许是一个微不足道的问题,但我需要这方面的帮助。简而言之,这是我的视图模型文件的一部分,在调试模式下编译项目时可以正常工作:

var getValidDocs = function () 
        if (exports.data.Language() == 'it-IT' && exports.data.TaxCode() != null) 

            exports.validRegistrationFiles.removeAll();

            ko.utils.arrayForEach(exports.allValidRegistrationFiles(), function (myRegistrationFile) 

                var titolo = myRegistrationFile.Title._latestValue;
                //Here the browser gives me an "Uncaught TypeError: Cannot read property 'includes' of undefined"
                if (isIva.test(exports.data.TaxCode()) && titolo.includes('si_partita_iva')) 
                    exports.validRegistrationFiles.push(myRegistrationFile);
                
                if (!isIva.test(exports.data.TaxCode()) && titolo.includes('no_partita_iva')) 
                    exports.validRegistrationFiles.push(myRegistrationFile);
                

            )
            console.log(exports.validRegistrationFiles());
        
    ;

但是当我在发布模式下编译时,我无法访问

myRegistrationFile.Title._latestValue 属性。

因此,我做不到

titolo.includes('si_partita_iva')

因为未定义。那么,是否有一个属性,相当于 _latestValue,我可以在这种情况下使用?

【问题讨论】:

如果你能分享一个minimal reproducible example,那就太棒了。 避免使用 _latestValue 属性作为其仅在 knockout.debug.js iirc 上。你应该只需要var titolo = myRegistrationFile.Title()。获取当前值。 【参考方案1】:

最后这就是我所做的

<!-- ko foreach: $root.validRegistrationFiles -->
<div class="row">

    <!-- ko if: $root.checkIVA -->
    <!-- ko if: Title().includes('si_partita_iva') -->
    <div class="col-sm-12 icon">blah blah blah</div>
    <!-- /ko -->
    <!-- /ko -->

    <!-- ko if: $root.checkCodFiscale -->
    <!-- ko if: Title().includes('no_partita_iva') -->
    <div class="col-sm-12 icon">blah blah blah</div>
    <!-- /ko -->
    <!-- /ko -->

</div>
<!-- /ko -->

因为其他一切都惨遭失败

【讨论】:

以上是关于KnockoutJS 和 c# 视图的主要内容,如果未能解决你的问题,请参考以下文章

KnockoutJS 3.X API 第二章 数据监控视图模型与监控

KnockoutJS:帮我组织多个视图模型

knockoutjs 从一个函数中保存多个视图模型?

具有动态创建的局部视图的 KnockoutJS

将 knockoutjs 视图模型传递给多个 ajax 调用

KnockoutJS - 从另一个模型视图更新observable