淘汰foreach绑定不适合我

时间:2014-01-03 19:26:40

标签: javascript knockout.js knockout-2.0

当我运行此页面时,我的observablearrary“assignedbranches”包含对象。但是一个具有foreach绑定到数组的东西是完全空的。为什么呢?

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对象     [{“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“:”巴尔的摩“,”branchlabel“:”巴尔的摩(1115)“},{”branchNumber“:”4001“,”branchName“:”巴吞鲁日“ ,“branchlabel”:“Baton Rouge(4001)”}]

1 个答案:

答案 0 :(得分:1)

尝试:

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

而不是:

me.assignedbranches().push(new branchAssignment(val));
相关问题