Backbone.js 通过KnockbackJS访问主干模型主干集合中的数据

Backbone.js 通过KnockbackJS访问主干模型主干集合中的数据,backbone.js,knockout.js,knockback.js,Backbone.js,Knockout.js,Knockback.js,在过去的几天里,我一直在玩Knockout和Backbone,偶然发现了KnockbackJS框架,它将Knockout的绑定能力与Backbone的数据建模魔力结合在一起 在这个简单的示例中,我有一个主干模型的主干集合,并且在将它们绑定到HTML时遇到了问题 这是我的javascript: var Model = Backbone.Model.extend({ defaults: { firstName: "", lastName: "" }

在过去的几天里,我一直在玩Knockout和Backbone,偶然发现了KnockbackJS框架,它将Knockout的绑定能力与Backbone的数据建模魔力结合在一起

在这个简单的示例中,我有一个主干模型的主干集合,并且在将它们绑定到HTML时遇到了问题

这是我的javascript:

var Model = Backbone.Model.extend({
    defaults: {
        firstName: "",
        lastName: ""

    }
});



var Collection = Backbone.Collection.extend({
    data : Model
});


var temp1 = new Model({firstName: "aaa", lastName:"bbb"});
console.log("new model");

var temp2 = new Model({firstName: "BBB", lastName:"CCCC"});
console.log("newest model");


var collection = new Collection([temp1, temp2]);

//---------Knockout/Backbone bridge---------

var view_model = kb.viewModel(collection, { read_only: true });

ko.applyBindings(view_model);
…和我的简单HTML:

<div data-bind="foreach: data">
   <span data-bind="text: name"></span>
   <span data-bind="text: artist"></span>
</div>


我无法访问集合中模型内部的数据。有任何线索、提示、提示吗?

我知道了,以下是JS代码:

console.clear();
var PersonModel = Backbone.Model.extend();


var model1 = new PersonModel({firstName: "aaa", lastName:"bbb"});
var model2 = new PersonModel({firstName: "CCCC", lastName:"DDDD"});

var PersonViewModel = function (person) {

    this.firstName = kb.observable(person, 'firstName');
    this.lastName = kb.observable(person, 'lastName');
    this.fullName = ko.computed((function () {
        return "" + (this.firstName()) + " " + (this.lastName());
    }), this);
};

var PersonsModel = Backbone.Collection.extend({ model: PersonModel});
var personsModel = new PersonsModel([model1,model2]);

var PersonsViewModel = function (persons) {
    this.persons = kb.collectionObservable(persons);
};

var personsViewModel = new PersonsViewModel(personsModel);

ko.applyBindings(personsViewModel, $('#kb_collection_observable')[0]);
…以下是HTML:

<div id="kb_collection_observable">
                <div data-bind="if: persons">
                    <span>Data </span>
                </div>
                <div data-bind="foreach: persons">
                    <p>First name: <input class='text' data-bind="value: firstName" /></p>
                    <p>Last name: <input class='input-small pull-right' data-bind="value: lastName" /></p>
                </div>
</div>

资料
名字:

姓氏:

多亏了