Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用两个工厂AngularJS_Javascript_Angularjs_Factory - Fatal编程技术网

Javascript 使用两个工厂AngularJS

Javascript 使用两个工厂AngularJS,javascript,angularjs,factory,Javascript,Angularjs,Factory,我想知道在AngularJS中使用两个工厂是否适用,基本上从另一个工厂调用一个工厂 考虑以下情况: 我有一个工厂返回一个数组。此工厂应验证填充此数组的数据是否已在本地SQL存储中 如果TRUE则将此数据返回给我的控制器 如果FALSE则应该调用另一个工厂,该工厂使用RESTful API中的数据。然后将该数据写入WebSQL数据库,最后返回该数据 此设计是否遵循标准软件模式?我很难将AngularJS技术应用到我的项目中。两个工厂使用彼此的服务没有问题。两个工厂使用彼此的服务没有问题。将一个服务

我想知道在AngularJS中使用两个工厂是否适用,基本上从另一个工厂调用一个工厂

考虑以下情况:

我有一个工厂返回一个数组。此工厂应验证填充此数组的数据是否已在本地SQL存储中

如果TRUE则将此数据返回给我的控制器

如果FALSE则应该调用另一个工厂,该工厂使用RESTful API中的数据。然后将该数据写入WebSQL数据库,最后返回该数据


此设计是否遵循标准软件模式?我很难将AngularJS技术应用到我的项目中。

两个工厂使用彼此的服务没有问题。

两个工厂使用彼此的服务没有问题。

将一个服务/工厂/提供商注入另一个工厂是完全可以的

以下是一个很好的答案,何时使用哪一个-


在这个特殊的场景中,我将使用您的服务作为SQL服务和API服务。控制器只注入SQL服务并将数据发送到那个里。SQL服务然后决定如何处理数据,如果需要,它会从API服务请求额外的数据,API服务应该首先返回承诺,然后在解析时返回数据。当SQL服务完成时,它将数据独立地返回给控制器,不管它是否调用了API服务。同样,更倾向于使用承诺模式。控制器根本不需要了解API。

将一个服务/工厂/提供者注入到另一个服务/工厂/提供者中完全可以

以下是一个很好的答案,何时使用哪一个-


在这个特殊的场景中,我将使用您的服务作为SQL服务和API服务。控制器只注入SQL服务并将数据发送到那个里。SQL服务然后决定如何处理数据,如果需要,它会从API服务请求额外的数据,API服务应该首先返回承诺,然后在解析时返回数据。当SQL服务完成时,它将数据独立地返回给控制器,不管它是否调用了API服务。同样,更倾向于使用承诺模式。Controller根本不需要了解API。

AngularJS附带了一个内置的依赖注入机制,它是关于共享资源的,就像在您的情况下,您希望两个工厂相互使用一样。我在这里举一个简单的例子来说明如何做到这一点 这是你的角稿

var app = angular.module('yiiframe-factoryApp', ['ngRoute']);
 app.factory("myFactory1", function() {
    return "Controller";
});

app.factory("myFactory2", function(myFactory1) {
    return "factory" + myFactory1;
});
function factoryController($scope, myFactory2) {
    $scope.ctrlName = myFactory2;
}
这就是你的观点

<div ng-app="yiiframe-factoryApp" class="container">
    <div ng-controller="factoryController" class="page-content">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <h3 class="modal-title">Angularjs Factory example</h3>
                </div>
                <div class="modal-body">
                    {{ctrlName}}
                </div>
            </div>
        </div>
    </div>
</div>

Angularjs工厂示例
{{ctrlName}

AngularJS附带了一个内置的依赖注入机制,它是关于共享资源的,就像在你的例子中,你想让两个工厂互相使用一样。我在这里举一个简单的例子来说明如何做到这一点 这是你的角稿

var app = angular.module('yiiframe-factoryApp', ['ngRoute']);
 app.factory("myFactory1", function() {
    return "Controller";
});

app.factory("myFactory2", function(myFactory1) {
    return "factory" + myFactory1;
});
function factoryController($scope, myFactory2) {
    $scope.ctrlName = myFactory2;
}
这就是你的观点

<div ng-app="yiiframe-factoryApp" class="container">
    <div ng-controller="factoryController" class="page-content">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <h3 class="modal-title">Angularjs Factory example</h3>
                </div>
                <div class="modal-body">
                    {{ctrlName}}
                </div>
            </div>
        </div>
    </div>
</div>

Angularjs工厂示例
{{ctrlName}

顺便说一句,我回答了“服务提供商vs.供应商vs.工厂”的问题:)顺便说一句,我回答了“服务提供商vs.供应商vs.工厂”的问题:)