Breeze 可观察项在敲除绑定中没有元素

Breeze 可观察项在敲除绑定中没有元素,breeze,knockout-2.0,Breeze,Knockout 2.0,我遇到了有线问题,应用自定义绑定前后数组的记录计数为8,但在调试绑定时数组为空。因为数组是空的,所以网格不显示任何内容。我做错了什么 var vM = { recordsCount: ko.observable(), countries: ko.observableArray() }; $(function () { getAllCountries(); // Handler fo

我遇到了有线问题,应用自定义绑定前后数组的记录计数为8,但在调试绑定时数组为空。因为数组是空的,所以网格不显示任何内容。我做错了什么

var vM = {
            recordsCount: ko.observable(),
            countries: ko.observableArray()
        };
        $(function () {

        getAllCountries();

        // Handler for .ready() called.
        //alert(myns.JavaScript1);
        //alert(myns.JavaScript1);
        //alert(myns.JavaScript2);

    });


    var serviceName = "/breeze/CountriesBreeze/";
    var manager = new breeze.EntityManager(serviceName);

    /***  supporting functions ***/
    function getAllCountries() {
        var query = breeze.EntityQuery.from("GetCountries");
        console.log("Getting Countries");
        return manager.executeQuery(query)
            .then(function(data) {
                vM.countries(data.results);
                alert(vM.countries().length);
                ko.applyBindings(vM);
                alert(vM.countries().length);
            }).fail(
                alert( "Error getting Data")
            )
    }


</script>
<div id="log"></div>
var-vM={
recordsCount:ko.observable(),
国家:韩国
};
$(函数(){
getAllCountries();
//调用了.ready()的处理程序。
//警报(myns.JavaScript1);
//警报(myns.JavaScript1);
//警报(myns.JavaScript2);
});
var serviceName=“/breeze/CountriesBreeze/”;
var manager=new breeze.EntityManager(serviceName);
/***辅助功能***/
函数getAllCountries(){
var query=breeze.EntityQuery.from(“GetCountries”);
console.log(“获取国家”);
return manager.executeQuery(查询)
.then(功能(数据){
vM.国家(数据、结果);
警报(vM.countries().length);
ko.应用绑定(vM);
警报(vM.countries().length);
}).失败(
警报(“获取数据时出错”)
)
}
]

                   }">
      </table>
}>

将您的
ko.applyBindings()
语句移到此处:

var vM = {
            recordsCount: ko.observable(),
            countries: ko.observableArray()
        };
        $(function () {

        getAllCountries();

        // Handler for .ready() called.
        //alert(myns.JavaScript1);
        //alert(myns.JavaScript1);
        //alert(myns.JavaScript2);

    });

ko.applyBindings(vM);
然后我不确定仅仅执行
vM.countries(data.results)
是否有效,您可能需要迭代并推送每个值,或者执行以下操作:

vM.countries(data.results)
vM.countries.valueHasMutated()