2017-09-01 1 views
0

Je suis en train d'utiliser KnockoutJS pour la première fois avec une reliure foreach mais je continue à obtenir l'erreur:KnockoutJS simples tentent - foreach donner impossible de traiter [la propriété] liaison n'est pas erreur définie

Uncaught ReferenceError: Unable to process binding "text: function(){return PhoneTypeName }" Message: PhoneTypeName is not defined

ici est le javascript HTML & simplifié qui peut être jugé dans le lien ci-dessous jsFiddle qui suit:

HTML

<table> 
    <thead> 
    <tr> 
     <th>Type</th> 
     <th>Number</th> 
     <th></th> 
    </tr> 
    </thead> 
    <tbody data-name="personPhones" data-bind: "foreach: phones"> 
    <tr > 
     <td> 
     <span data-bind="text: PhoneTypeName"></span> 
     </td> 
     <td> 
     <span data-bind="text: PhoneNumber1"></span> 
     </td> 
    </tr> 
    </tbody> 
</table> 

JS

function PhoneVM(data) { 
    if (!(this instanceof PhoneVM)) 
    return new PhoneVM(data); 

    this.ID = ko.observable(data.ID); 
    this.PhoneTypeName = ko.observable(data.PhoneTypeName); 
    this.PhoneNumber1 = ko.observable(data.PhoneNumber1); 
} 

var p1 = new PhoneVM({id: 1, PhoneTypeName: 'Home', PhoneNumber1: '345-234-3455'}); 
var p2 = new PhoneVM({id: 1, PhoneTypeName: 'Home', PhoneNumber1: '345-234-3455'}); 

var arr = [p1, p2]; 
var vm = { phones: arr }; 

ko.applyBindings(vm); 

JS Fiddle Here

Il semble ne pas être plongée dans le tableau, mais je ne peux pas repérer quel est le problème. Qu'est-ce que je fais mal?

Répondre

1

La syntaxe de votre liaison de données est légèrement désactivée. Vous avez besoin d'un signe égal à la place d'un deux-points.

data-bind: "foreach: phones" devrait être data-bind="foreach: phones"

+0

Oh mon Dieu ... Je savais que ça allait être stupide, mais c'est embarrassant. C'était tellement invisible pour moi. Je vous remercie. – xr280xr