gpt4 book ai didi

angularjs - 如何使用 "controller as"语法调用 $scope.$apply()

转载 作者:行者123 更新时间:2023-12-02 22:14:54 24 4
gpt4 key购买 nike

我试图尽可能限制在 Controller 中使用 $scope 并将其替换为 Controller as 语法。

我当前的问题是,我不确定如何在不使用 $scope 的情况下在 Controller 中调用 $scope.$apply()

编辑:我将 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();
});

它是(数组 wordListnotUsedWordList)在我看来,没有更新:

<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相同,是否有另一种方法使用Controller as调用$scope.$on

谢谢!

最佳答案

要回答这里的问题,您可以在使用controller-as语法时在 Controller 中使用$scope()方法,只要传递$scope > 作为函数的参数。然而,使用controller-as语法的主要好处之一是不使用$scope,这会带来困境。

正如评论中所讨论的,发帖者将提出一个新问题,首先审查需要 $scope 的特定代码,并在可能的情况下提出一些重新构造的建议。

关于angularjs - 如何使用 "controller as"语法调用 $scope.$apply(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28012633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com