当我运行此页面时,我的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)”}]
答案 0 :(得分:1)
尝试:
me.assignedbranches.push(new branchAssignment(val));
而不是:
me.assignedbranches().push(new branchAssignment(val));