Javascript 服务未在js中定义

Javascript 服务未在js中定义,javascript,angularjs,angular-services,Javascript,Angularjs,Angular Services,我得到了angular js中未定义的服务错误,但我不明白为什么,因为我的控制器和模块完美连接: application.js: var myapp=angular.module('myApp', []); myapp.service('productService', function() { var productList = ""; var addProduct = function(newObj) { productList=newObj; }; var

我得到了angular js中未定义的服务错误,但我不明白为什么,因为我的控制器和模块完美连接:

application.js:

var myapp=angular.module('myApp', []);

myapp.service('productService', function() {
  var productList = "";

  var addProduct = function(newObj) {
     productList=newObj;
  };

  var getProducts = function(){
      return productList;
  };

  return {
    addProduct: addProduct,
    getProducts: getProducts
  };

});
controller1.js:

myapp.controller('contrl1', ['$scope','productService', function ($scope) {
    var st="datsat";

     productService.addProduct(st);
}]))

控制器2:

myapp.controller('contrl2', ['$scope','productService', function ($scope) {

 $scope.products = productService.getProducts();
}]);

此外,在我提供的指向contoller.js文件和application.js文件的链接视图中,这是创建控制器的正确方法:

myapp.controller('controll2',['$scope','productService',function($scope,productService)


使用DI和内联数组注释时,注释数组(字符串)和函数参数应该同步(相同).

如果您不将变量
productService
放入参数列表中,您认为您的控制器如何访问该变量?是的,它已解决,但现在控制器2中$scope.products的值没有更改为控制器1中提到的值,其保留默认值,如application.js@AlnitakYeah中所定义,但现在$scop的值已解决e、 controller2中的产品未更改为controller1中提到的产品,其保留的默认值如application.js中所定义。您需要在第一个控制器中执行相同的操作(将服务指定为
函数的参数
).是的,这两个控制器都有,当我访问第一页,然后转到第二页时,值没有改变。你敢使用页面间的浏览路由吗?不,我只是在更改url栏中的值