Я пытаюсь максимально ограничить использование $scope
в моих контроллерах и заменить его синтаксисом Controller as
.
Моя текущая проблема заключается в том, что я не уверен, как вызвать $scope.$apply()
в моем контроллере, не используя $scope
.
Изменить: я использую TypeScript 1.4 в сочетании с angular
У меня есть эта функция
setWordLists() {
this.fetchInProgress = true;
var campaignId = this.campaignFactory.currentId();
var videoId = this.videoFactory.currentId();
if (!campaignId || !videoId) {
return;
}
this.wordsToTrackFactory.doGetWordsToTrackModel(campaignId, videoId)
.then((response) => {
this.fetchInProgress = false;
this.wordList = (response) ? response.data.WordList : [];
this.notUsedWordList = (response) ? response.data.NotUsedWords : [];
});
}
вызывается из
$scope.$on("video-switch",() => {
this.setWordLists();
});
И это (массивы wordList
и notUsedWordList
)
на мой взгляд, не обновляется:
<div class="wordListWellWrapper row" ng-repeat="words in wordTrack.wordList">
<div class="col-md-5 wordListWell form-control" ng-class="(words.IsPositive)? 'posWordWell': 'negWordWell' ">
<strong class="wordListWord">{{words.Word}}</strong>
<div class="wordListIcon">
<div class="whiteFaceIcon" ng-class="(words.IsPositive)? 'happyWhiteIcon': 'sadWhiteIcon' "></div>
</div>
</div>
<div class="col-md-2">
<span aria-hidden="true" class="glyphicon-remove glyphicon" ng-click="wordTrack.removeWord(words.Word)"></span>
</div>
</div>
В тех же строках $apply
существует ли другой способ вызова $scope.$on
с помощью Controller as
?
Спасибо!