Можете ли вы изменить логику разбивки на страницы?
Если да, вы можете поместить номер страницы в маршрут и использовать маршрут для разбивки данных на страницы, при этом вам не нужно прослушивать событие браузера слушателя. [ 115]
Пример (маршрутизация):
{ path: 'list/:page', component: ExampleComponent },
ExampleComponent
constructor(private route:ActivatedRoute){}
ngOnInit(){
this.route.params.subscribe( params => {
this.currentPage = params['page'];
this.updatePaginator();
this.updateStorePaginator();
});
}
Btn для изменения страницы:
<a routerLink="/list/5">Page 5</a>
Для обновления пути с изменением из paginator вы можете сделать это
<mat-paginator (page)="change($event)">
</mat-paginator>
change(e.page){
this.router.parent.navigate(e.page);
}
Хорошо, несколько частей здесь.
Во-первых, я соглашаюсь с markusQ, хотя я полностью симпатизирую: я смог бы написать свой код в EMACS непосредственно. Купленная из вещей о Smalltalk - то, что это действительно является очень непрощающим людей, которые не хотят делать вещи Путь Smalltalk. В этом случае Путь Smalltalk состоит в том, чтобы использовать браузеры.
Во-вторых, часть причины, что это - Путь Smalltalk, - то, что Smalltalk, большим количеством способов, не как другие языки. Существует действительно, для всех практических целей, никакой способ сделать "отдельный" исполняемый файл Smalltalk: все, что можно сделать, делают изображение Smalltalk с некоторыми относительно маленькими фрагментами собственного кода включенным. Когда Вы пишете код с помощью внешнего редактора, как с синтаксисом Вы показываете, Вы - буквально просто рука, вводящая импорт/формат экспорта, который несколько легче вручить тип, чем XML. Но только несколько.
Мораль, сделайте это Smalltalk путь с браузерами.
Существуют некоторые довольно хорошие учебные руководства для Smalltalk о. Я обычно использую Писк, таким образом, те, которых я видел, используют Писк, как здесь.
На TDD Вы находитесь в удаче, потому что Smalltalk был первым местом для получения xUnit. Для Smalltalk это назвало SUnit, и здесь существует хорошее учебное руководство.
Вы используете утверждения там в том, что, кажется, в основном "дизайн контракта" подход. Была работа, сделанная на добавляющем дизайне контракта к Smalltalk, как здесь. Для простых утверждений можно добавить код как в этом ТАК вопрос.
assert: aBlock
"Throw an assertion error if aBlock does not evaluates to true."
aBlock value
ifFalse: [AssertionFailure signal: 'Assertion failed']
Я очень не хочу сказать это (потому что Вы ясно указали, что не хотите слышать его), но войдите в IDE. Попытка получить Вашу голову вокруг smalltalk, не используя IDE похожа на поездку в Париж и еду в Макдоналдсе. Несомненно, Вы находитесь в Париже, но Вы действительно не подвергаете себя тому, о чем это - все.
Ключевая вещь о smalltalk состоит в том, что это - все объекты. Полностью вниз (целые числа и символы являются объектами) и полностью (классы, методы, браузеры, сам IDE) все объекты. Если Вы настоите на том, чтобы бороться с ним, то у Вас будет почти столько же удачи сколько кто-то желающий изучить, как записать C путем перетаскивания вещей.
При загрузке Некоммерческого Cincom Smalltalk существует много учебных руководств онлайн. Запустите здесь:
http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=tutorials
При загрузке Писка запустите здесь:
http://wiki.squeak.org/squeak/792
И да, действительно необходимо использовать IDE для работы эффективно с Smalltalk.
На тестировании, загрузке SUnit. В Cincom Smalltalk это - загружаемый компонент; я покрыл загрузку (и использование) это в видео учебных руководствах, связанных выше. Я не совсем уверен, как загрузить его для Писка, или является ли это частью основы там, но это, конечно, доступно для него.
Так, об утверждает, Писк, который Smalltalk уже приносит Объекту>>, утверждает: Так, я предполагаю, что можно сделать:
self assert: self isNotEmpty.
self assert: result dimensions equal: (self height)@(anotherMatrix width)
При использовании GNU smalltalk это могло бы ответить, как сделать утверждения там: Smalltalk и Assertions
Niko
Кроме запроса на учебное руководство, я не вижу вопроса здесь. Вы могли разъяснить то, что это - Вы, хотят знать?
Хороший список ресурсов для новичка может быть найден в этом вопросе: https://stackoverflow.com/questions/481976/is-there-a-dive-into-smalltalk-book
Относительно утверждает, посмотрите на другой вопрос, недавно отправленный.
Относительно TDD, да, звоня gst-sunit -f matrix.st -f matrix-test.st BaseMatrixTests
вид лучшего способа. Все остальное просто основывается на этом, например, они могли быть тобой альтернативы:
AllMatrixTests*
на командной строке GST-sunit (когда Вы добавляете больше тестов).gst-sunit -pMatrix
.Было предложено выше добавить #assert:
кому: Object
, а скорее я добавил бы #assert
кому: BlockClosure
(или безотносительно [] class
находится в GNU Smalltalk).
assert
this value ifFalse: [AssertionFailure signal: 'Assertion failed']
и таким образом используйте в качестве в
[ value notNil ] assert.
[ value > 0 ] assert.
[ list isEmpty not ] assert.
и так далее.
Краткая информация Smalltalk является введением в Основы Ориентированного на сообщение Программирования с Smalltalk
http://stores.lulu.com/store.php?fAcctID=2748699 (Также вы найдете ссылку для скачивания pdf)
.