首页 > 解决方案 > angularJS 中的服务不起作用。ASP.NET 核心

问题描述

我在 ASP.NET Core 2.0 上创建了一个简单的 MVC 项目,其中一个视图是我开始所有 angularJS 工作的地方。我的服务有问题。是否在 app.run 上注入服务都没有关系,我总是有错误。

var app = angular.module('myApp', ['ui.router']);

app.config(function ($stateProvider, $urlRouterProvider) {

  $urlRouterProvider.otherwise('/home');

  $stateProvider
  .state('home', {
    url: '/home',
    templateUrl: 'app/pages/home.html',
    authenticate: false
  });
});

app.run(['$rootScope', '$state', 'TestServices', 
  function ($rootScope, $state, TestServices) {

    $rootScope.$on('$stateChangeStart',
      function (event, toState, toParams) {
        console.log(toState.authenticate);
        //need run service method here!
      }
    );
  }
]);

我的服务

var app = angular.module('myApp', []);
 app.service('TestServices', function () {

 this.cal = function() {
    console.log("Heloo")
  }

});

我不知道有什么问题。我试过了。我无法从服务中调用该方法。我到处注射它,但没有结果。我不能从我的服务中调用任何方法!

索引页面 cshtml

@{
Layout = null;
 }

<head>
<script type="text/javascript" 
src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.9/angular.js"> 
</script>
<script src="~/app/pages/TaxFactory.js"></script>
<script type="text/javascript" 
 src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui- 
  router/0.3.1/angular-ui-router.js"></script>

<script src="~/app/pages/app.js"></script>
</head>
 <body ng-app="myApp">
<div ui-view></div>
</body>

如果您需要,这里是项目的链接。 https://drive.google.com/open?id=1Dg8zcGEySUU8UbsL339B-gZgr7QrsNDF 我认为它与 ui-router 和 cshtml 格式有关,例如起始页?

标签: angularjsasp.net-core

解决方案


您正在覆盖 app.js 中的 app 变量。所以 TestService 不再可用。

避免这种情况的一种方法是将 TaxFactory.js 更改为;

var taxFactory = function () {
    this.cal = function () {
        console.log("Heloo");
    };
};

app.run并在 app.js之前添加这一行;

app.service('TestServices', taxFactory);


推荐阅读