将一个模块的工厂提供给另一个模块

时间:2017-03-06 12:02:26

标签: javascript jquery angularjs

我刚刚开始研究Angularjs,并且在调用其他模块中定义的工厂时遇到了问题。实际上我需要清理代码,所以我必须在一个js文件中构建所有功能,我必须在我已经定义我的控制器的主js文件中使用它们。我已经制作了一个简单的代码来理解这个问题。提前致谢

以下是Html文件: -

char *chain_certs = "------- BEGIN CERTIFICAT...."; /// <<< YOUR CERTIFICATE CHAIN
// Load chain of certs
X509 *cacert=NULL;
BIO *mem = BIO_new_mem_buf(chain_certs,strlen(chain_certs));
X509_STORE *cert_store = SSL_CTX_get_cert_store(ssl_context);

if(cert_store!=NULL){
    int index = 0;
    while ((cacert = PEM_read_bio_X509(mem, NULL, 0, NULL))!=NULL) {
        if(cacert) {
            g_debug("Our certificate name is %s", cacert->name);
            X509_STORE_add_cert(cert_store, cacert);
            X509_free(cacert);
            cacert=NULL;
        } /* Free immediately */
        index++;
    }
}
BIO_free(mem);

以下是script.js文件

<!DOCTYPE html>
<html>
  <head>
    <script data-require="angular.js@1.1.5" data-semver="1.1.5"  src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="function.js"></script>
    <script src="script.js"></script>
  </head>
  <body ng-app="MyServiceModuleOne">
    <div ng-controller="TestController">
      <button type="button" ng-click="getFn()"> Test  </button>
    </div>
  </body>
</html>

以下是function.js文件: -

var myModule= angular.module('MyServiceModuleTwo',['MyServiceModuleOne']);
myModule.controller('TestController', ['$scope', 'notify',    function($scope, notify){
  $scope.getFn = function() {
    notify.sampleFun();
  }
}]);

1 个答案:

答案 0 :(得分:1)

需要进行一些更改。 您正在引用MyServiceModuleTwo作为根模块,但您引用的控制器位于MyServiceModuleOne

因此,将您的ng-app从MyServiceModuleTwo更改为{{1}}。

我已更新plnkr