gpt4 book ai didi

javascript - 工厂中的 AngularJS $scope

转载 作者:行者123 更新时间:2023-12-02 15:34:15 27 4
gpt4 key购买 nike

我有以下情况,我使用了 jQuery 预加载插件。

angular.module('app')
.factory('Preloader', function Preloader(Videos) {


return {
start: function() {

$.html5Loader({
filesToLoad: Videos.query(),
onBeforeLoad: function() {},
onComplete: function() {
//$scope.loaded = done
},
onElementLoaded: function(obj, elm) {},
onUpdate: function(percentage) {
//$scope.precentage = precentage
}
});

}
}

});

我建立了一个工厂来包装插件。

在我的 Controller 中,我有类似的内容:

angular.module('playlist')
.controller('Ctrl', function($scope, Preloader, Videos) {

Preloader.start();

在 HTML 上,我有一个加载屏幕,我想用 ng-if="!loaded"隐藏它。

有人可以解释一下如何将工厂中的 $scope.loaded 链接到 Controller 内的 $scope.loaded 吗?

最佳答案

在这种情况下,指令是正确的方法,而不是工厂。这样,您就可以使用指令 $scope 公开 loaded 变量。

如果您想使用工厂,请将 loaded 变量公开为工厂的成员,以便您可以监视 Controller 中的更改。

编辑

要调用start,您可以使用事件或双向绑定(bind)(这是我最喜欢的)

关于javascript - 工厂中的 AngularJS $scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33079979/

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