Javascript 服务未在js中定义
我得到了angular js中未定义的服务错误,但我不明白为什么,因为我的控制器和模块完美连接: application.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
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栏中的值