2017-09-05 4 views
0

J'objectera personnalisé:je veux lier la liste de contexte, mais ne fonctionne pas

enter image description here

Je veux remplir l'objet, mais ne fonctionne pas.

Mon code:

enter image description here

var BindingMainCat = context.binding.get("value"); 
       BindingMainCat.set("AllPaymentsList[0].id", invoice_id); 
       BindingMainCat.set("AllPaymentsList[0].amount", inputs[i].value); 

S'il vous plaît aidez-moi. Merci

+0

S'il vous plaît ajouter le code pas l'image du code – MCG

Répondre

0

Les accesseurs dans les variables liées à Coachview ne prennent pas en charge la navigation complexe avec des points et des parenthèses. Une fois que vous obtenez la liste elle-même, vous pouvez utiliser les opérations add(), remove() et put() sur les éléments de la liste. Vous êtes autorisé à utiliser get() et set() sur les attributs de la liste mais pas les éléments eux-mêmes - voir la documentation IBM pour "List operations" of binding. Par exemple:

var list = this.context.binding.get("value"); 
var item0 = list.get(0); 
item0.set("id", invoice_id); 
item0.set("amount", inputs[i].value); 

Aussi, vous pouvez remplacer l'élément de la liste par une nouvelle:

var list = this.context.binding.get("value"); 
var newItem0 = {id: invoice_id, amount: inputs[i].value}; 
list.put(0, newItem0); 

Notez que le contenu final de la liste est la même, mais les notifications de modification sont différentes. Dans le premier exemple, il y aura deux événements concernant les propriétés des éléments, dans le deuxième exemple, il y aura un événement unique concernant les changements de liste - voir la documentation bind() and bindAll().

Soyez également averti que chaque étape que vous pouvez rencontrer des valeurs vides, si coachview n'a pas force obligatoire alors this.context.binding est définie, si la variable liée est nulle alors this.context.binding.get("value") est nulle, si la liste n'a pas d'articles alors list.get(0) est indéfini, etc.