首页 > 解决方案 > AngularJS工厂在不同的文件中

问题描述

我对 angularJS 完全陌生,所以这对我来说是第一次。我已经初始化了 Angular 应用程序,创建了一个控制器,直到此时一切正常。当我在不同的文件中创建工厂时,问题就开始了,然后我不知道如何在控制器中注册它。当我像我一样将工厂引用到控制器时,我得到Error: $injector:unpr Unknown Provider. 我究竟做错了什么?

var app = angular.module("app", []);

app.controller("appCtrl", function($http, appFactory) {
var that = this;
// Some stuff

}

这是不同文件中的工厂。

var app = angular.module("app");

app.factory("appFactory", function() {
var factory = {};
someData = [];


    factory.getData = function() {
        return someData;
  };
    return factory;
});

标签: angularjs

解决方案


不要再次创建模块。从您的工厂文件代码中删除这一行“var app = angular.module("app");”。并使用 getter 语法创建服务。文件

    <html>
<head>
    <title>title</title>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.js"> </script>
    <script src="app.js" /> </script>
    <script src="service.js" /> </script>

</head>
<body ng-app="myApp" ng-controller="myCtrl">
    {{text}}
</body>

控制器

    var app = angular.module('myApp', []);
    app.controller('myCtrl', function($scope, myserv) {
    $scope.text = myserv.myFunc();
    });

服务/工厂

    app.service('myserv', function() {
          this.myFunc = function () {
    return 'abc';
}

});


推荐阅读