Pregunta

My observablearrary "assignedbranches" contains objects when I run this page. But a that has foreach binding to the array is completely empty. Why?

var branchAssignment = function (data) {

        this.branchNumber = data.BranchNumber;
        this.branchName = data.BranchName;
        this.branchlabel = data.BranchLabel;

    }


    var AppViewModel = function() {
        var me = this;

        me.assignedbranches = ko.observableArray([]);
        me.LoadBranchAssignments = function () {
            $.getJSON("api/branchassignments", function (data) {
                var sorted = _.sortBy(data, function (b) {
                    return b.BranchName;
                });
                $.each(sorted, function (key, val) {                        
                    me.assignedbranches().push(new branchAssignment(val));
                });                                    
            });
        };
                    me.selectBranch = function (data, e) {
            console.log(data);
        };
        me.selectedBranch = ko.observable("Baton Rouge (4001)");


    };       
var appv = new AppViewModel;
    ko.applyBindings(appv); 

HTML

<ul class="nav navbar-nav">

        <li class="dropdown">
        <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown"><span data-bind="text: selectedBranch()"></span> <b class="caret"></b></a>
        <ul class="dropdown-menu" data-bind="foreach: assignedbranches ">
            <li>
                <a href="javascript:;" data-bind="text: branchlabel"></a>

            </li>                            

        </ul>
    </li> 
</ul>

SAMPLE branchAssignment objects [{"branchNumber":"4042","branchName":"Albuquerque","branchlabel":"Albuquerque (4042)"},{"branchNumber":"4006","branchName":"Alexandria","branchlabel":"Alexandria (4006)"},{"branchNumber":"1118","branchName":"Arden","branchlabel":"Arden (1118)"},{"branchNumber":"1113","branchName":"Ashland","branchlabel":"Ashland (1113)"},{"branchNumber":"4019","branchName":"Atlanta","branchlabel":"Atlanta (4019)"},{"branchNumber":"4030","branchName":"Austin","branchlabel":"Austin (4030)"},{"branchNumber":"1054","branchName":"Bakersfield","branchlabel":"Bakersfield (1054)"},{"branchNumber":"1115","branchName":"Baltimore","branchlabel":"Baltimore (1115)"},{"branchNumber":"4001","branchName":"Baton Rouge","branchlabel":"Baton Rouge (4001)"}]

¿Fue útil?

Solución

Try:

me.assignedbranches.push(new branchAssignment(val));

instead of:

me.assignedbranches().push(new branchAssignment(val));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top