Twitter bootstrap 淘汰可观察到的更新,但不更新用户界面?

Twitter bootstrap 淘汰可观察到的更新,但不更新用户界面?,twitter-bootstrap,knockout.js,Twitter Bootstrap,Knockout.js,我在测试函数中更新了可观察项属性。 此更新已成功更新可观察项 因为我在调试中检查它 但标签并没有更新。 怎么了 我尝试item.servicesult=ko.observable(“测试…”); 和其他东西,但用户界面标签不更新 Javascript代码: var ViewModel = function (myPano) { var observablePano = ko.utils.arrayMap(myPano, function (panoData) {

我在测试函数中更新了可观察项属性。 此更新已成功更新可观察项

因为我在调试中检查它

但标签并没有更新。 怎么了

我尝试item.servicesult=ko.observable(“测试…”); 和其他东西,但用户界面标签不更新

Javascript代码:

   var ViewModel = function (myPano) {
        var observablePano = ko.utils.arrayMap(myPano, function (panoData) {
        return {
            panoNo: ko.observable(panoData.panoNo),
            modemNo: ko.observable(panoData.modemNo),
            aydinlatmaNo: ko.observable(panoData.aydinlatmaNo),
            geneltuketimNo: ko.observable(panoData.geneltuketimNo),
            serviceResult: ko.observable(panoData.serviceResult),
            test: function (item) {
                alert(item.panoNo());
                item.serviceResult = "TESTING...";
            }
        };
    });
    this.Panos = ko.observableArray(observablePano);
};

$(function () {

    var viewModel = new ViewModel(
        [
        { panoNo: '1', modemNo: '', aydinlatmaNo: '', geneltuketimNo: '', serviceResult: '.' },
        { panoNo: '2', modemNo: '', aydinlatmaNo: '', geneltuketimNo: '', serviceResult: '.' },
        { panoNo: '3', modemNo: '', aydinlatmaNo: '', geneltuketimNo: '', serviceResult: '.' },
        { panoNo: '4', modemNo: '', aydinlatmaNo: '', geneltuketimNo: '', serviceResult: '.' },
        { panoNo: '5', modemNo: '', aydinlatmaNo: '', geneltuketimNo: '', serviceResult: '.' },
        { panoNo: '6', modemNo: '', aydinlatmaNo: '', geneltuketimNo: '', serviceResult: '.' }
        ]
        );

    ko.applyBindings(viewModel);

});

 html : <div class="row show-grid" data-bind="foreach: Panos">

    <div class="col-xs-6 col-md-4">

        <table>
            <tr>
                <td>
                    <form class="form-horizontal">
                        <fieldset>

                            <div class="input-group">
                                <input type="text" placeholder="PANO NO" class="form-control" data-bind="value: panoNo">
                            </div><div class="input-group">
                                <input type="text" placeholder="MODEM NO" class="form-control" data-bind="value: modemNo">
                            </div><div class="input-group">
                                <input type="text" placeholder="AYDINLATMA SAYAÇ NO" class="form-control" data-bind="value: aydinlatmaNo">
                            </div><div class="input-group">
                                <input type="text" placeholder="GENEL TÜKETİM SAYAÇ NO" class="form-control" data-bind="value: geneltuketimNo">
                            </div>

                        </fieldset>

                    </form>
                </td>
                <td>
                    <button type="button" class="btn btn-primary" data-bind="click: test">Testi Başlat</button>
                    <br />
                    <span class="label label-default" data-bind="text: serviceResult"></span>                        
                </td>
            </tr>
        </table>


    </div>

</div>
var ViewModel=函数(myPano){
var observePano=ko.utils.arrayMap(myPano,函数(panoData){
返回{
panoNo:ko.可观测(panoData.panoNo),
modemNo:ko.可观察(panoData.modemNo),
Aydinatmano:ko.可观测(panoData.Aydinatmano),
geneltuketimNo:ko.可观察(panoData.geneltuketimNo),
serviceResult:ko.可观察(panoData.serviceResult),
测试:功能(项目){
警报(item.panno());
item.servicesult=“测试…”;
}
};
});
this.Panos=ko.observableArray(observablePano);
};
$(函数(){
var viewModel=新的viewModel(
[
{panoNo:'1',modemNo:'',aydinlatmaNo:'',geneltuketimNo:'',servicesult:'.'},
{panoNo:'2',modemNo:'',aydinlatmaNo:'',geneltuketimNo:'',servicesult:'.'},
{panoNo:'3',modemNo:'',aydinlatmaNo:'',geneltuketimNo:'',servicesult:'.'},
{panoNo:'4',modemNo:'',aydinlatmaNo:'',geneltuketimNo:'',servicesult:'.'},
{panoNo:'5',modemNo:'',aydinlatmaNo:'',geneltuketimNo:'',servicesult:'.'},
{panoNo:'6',modemNo:'',aydinlatmaNo:'',geneltuketimNo:'',servicesult:'.}
]
);
应用绑定(视图模型);
});
html:
巴伊拉特睾丸


尝试
item.servicesult(“测试”)

如果您只是将一个新值分配给一个可观察的变量,则不会发生任何事情:

item.serviceResult = ko.observable("1");

//apply bindings, Label will Display 1

item.serviceResult = ko.observable("2");

//Label is still bound to the observable that contains "1", you'd have to reassign bindings to find that it should now bind to some other observable
相反:

item.serviceResult("2"); 
//assign new value into the existing observable! this will update the UI as the ui is bound to this observable object

我希望这能解释一点。

这是真的,我忘记了。现在是2020年,但多亏了六年前你的回答。。在没有深刻理解的情况下,保持淘汰赛并不容易。。。