0

私はhtmlを次のように持っています: JSfiddle

<ul data-bind="foreach: Items">
    <li data-bind="click: setTextColor, text: 'Color: ' + color"></li>
     <ul data-bind="foreach:add">
         <li data-bind="text:test"></li>
    </ul>
</ul>

およびJSは以下のとおりです。

var Item = function(color) {
    var self = this;
    self.color = String(color);
    self.setTextColor = function(item, event) {
        console.log(item.color);
        $(event.target).css('color', color);
    };
},
     add = function (test){
        
        this.test = String (test);
};
ko.applyBindings(new function() {
    this.Items = ko.observableArray([
        {new Item('red'),ko.observableArray(new add('colore'),new add('is'),new add('red'))},
        {new Item('blue'),ko.observableArray(new add('colore'),new add('is'),new add('blue'))},
        {new Item('green'), ko.observableArray(new add('colore'),new add('is'),new add('green'))}
    ]);
}());

しかし、それはデータを移入していません。何が問題なのか教えてください!!!

4

2 に答える 2

1

私はそれを次のようにします:

var Item = function(color, a) {
    var self = this;
    self.color = String(color);
    self.setTextColor = function(item, event) {
        console.log(item.color);
        $(event.target).css('color', color);
    };
    self.add = ko.observableArray(ko.utils.arrayMap(a, function(item) { return new add(item); }));
},
add = function (test){
    this.test = String (test);
};
ko.applyBindings(new function() {
    this.Items = ko.observableArray([
        new Item('red',['colore','is','red']),
        new Item('blue',['colore','is','blue']),
        new Item('green', ['colore','is','green'])
    ]);
}());

JSFiddle: http://jsfiddle.net/ENQzc/

于 2013-04-03T09:28:02.170 に答える
0

Firebug または Chrome コンソールでしょうか。

SyntaxError: missing : after property id
[Stanna vid fel]  

{new Item('red'),ko.observableArray(new add('colore'),new add('is

/Wnzrr/1/show/ (line 49, col 14)

一番下の配列定義は本当に奇妙です。何をしようとしていますか?

于 2013-04-03T09:18:14.030 に答える