У меня возникают трудности с выяснением того, как передавать обновленные значения из привязки кликов из одного шаблона в другой. По сути, я создаю приложение репозитория компонентов, в котором пользователь сможет просматривать компонент и обновлять параметры для него на странице. Большинство этих опций могут совместно использоваться компонентами, поэтому я создал отдельные файлы для хранения этих часто используемых опций.
В приведенном ниже примере класс по умолчанию col-xs-4 добавляется к компоненту, как и предполагалось, но событие щелчка не обновляет класс, хотя само событие работает, так как регистрируется его обновление. значение столбцов в классе. Кажется, мне нужен какой-то прослушиватель событий для его обновления, но я не уверен, как с этим справиться.
content-tout.html
<div class="row">
<div [ng-class]="columnAmount" class="content-tout">
Tout
</div>
</div>
<hr />
<h2>Options</h2>
<p>Use the following buttons to update the values in the component above.</p>
<options></options>
content-tout.ts
import { Component, View, NgClass } from 'angular2/angular2';
// this is option for changing column class from the ng-class in the template
import { ColumnsOption } from '../../shared/options/columns';
@Component ({
selector: 'contentPlaceholder',
bindings: [ColumnsOption]
})
@View ({
templateUrl: '/app/components/content-tout/content-tout.html',
directives: [ColumnsOption, NgClass]
})
export class ContentTout {
private columnAmount: string;
constructor(private columnsOption:ColumnsOption) {
this.columnAmount = this.columnsOption.columns;
}
}
columns.ts
import { Component, View, NgFor } from 'angular2/angular2';
@Component ({
selector: 'options'
})
@View ({
template: `
<hr />
<h3>Columns / Width</h3>
<nav>
<button *ng-for="#column of columnsCollection" (click)="changeColumns(column)" class="btn btn-primary-outline" type="button">
{{ column }}
</button>
</nav>
`,
directives: [ NgFor ]
})
export class ColumnsOption {
private columnsCollection: Array<string> = [
'col-xs-1', 'col-xs-2', 'col-xs-3', 'col-xs-4', 'col-xs-5', 'col-xs-6', 'col-xs-7', 'col-xs-8', 'col-xs-9', 'col-xs-10', 'col-xs-11', 'col-xs-12'
];
public columns: string = "col-xs-4";
private changeColumns(column: string) {
this.columns = column;
}
}
Я много искал с привязками кликов в Angular2 и наткнулся только на ресурсы, где пример находится в том же представлении, что и привязка. Я надеюсь, что этот модульный подход возможен, поэтому, если у кого-то есть какие-либо ресурсы для меня, чтобы прочитать, или конкретный дисплей из предварительного просмотра API, я был бы очень признателен.