0

有線の問題が発生しています。カスタム バインディングを適用する前後で、配列のレコード カウントは 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>

]

                   }">
      </table>
4

1 に答える 1

0

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()
于 2013-07-11T00:13:41.100 に答える