Ich weiß, dass die Lösung nicht sehr hübsch, aber es ist nötig für die Vorlage in ich arbeite.AngularJS Checkbox, wenn in ng-repeat
Jetzt funktioniert es, und es zeigt mir den „Added“ spa- Element, wenn die Produkte in der Liste waren.
<section ng-repeat="product in products">
<label>
<input type="checkbox"
checklist-model="foobar.products"
checklist-value="product.id">
{{ product.name }}
</label>
<div ng-repeat="current_item in my.profile.items">
<span ng-show="product.id==current_item.id">Added</span>
</div>
</section>
Was ich will, ist es das Kontrollkästchen aktiviert, um zu überprüfen, wenn der „Added“ Text auch hinter der Checkbox erscheint.
habe ich versucht, es mit zu tun:
<ng-checked="{{my.profile.items.array.thing}}">
Aber das funktioniert nicht. Da die Produkte in einem Array wie:
[{
id: 1, name:"Trinity",
id: 2, name:"Van Gogh",
id: 3, name:"Bonaqua",
}]
Und die my.profile.items
ist ein Array mit mehr Informationen dann oben. Weil es eine Viele-zu-Viele-Beziehung ist, in der ich sie gespeichert habe.
Gibt es sogar einen Weg, dies zu tun? Ich habe nicht eine schmutzige Lösung dagegen: P
Ich versuchte dies:
// NG-check function
$scope.checkStoredValues = function(my) {
// Loop trought my current stored items
angular.forEach(my.profile.items, function(value, key) {
// Loop trough the array
angular.forEach(value, function(value, key) {
console.error(key);
// If key == 'id'
if(key == 'id'){
// Push the value to the Array of the checkboxes,
// so it's checked
// # Docs: http://vitalets.github.io/checklist-model/
console.info(value); // Return's: integer
foobar.products.push(value); // Needs more then an integer I guess..
}
});
});
};
Das gibt: TypeError: Cannot read property 'push' of undefined
Warum überschreiben Sie 'value, key' Variablen in $ scope.checkStoredValues –
Zunächst erhalten Sie' TypeError' weil 'foobar.products' nicht definiert ist, müssen Sie es als Array definieren.Zweitens haben Sie alle Beispiele auf http://vitalets.github.io/checklist-model/ überprüft? – Terafor
Können Sie die PLNKR oder JSFiddle für die gleichen bereitstellen? –