Javascript 在AngularJS之间共享数据
我一直在尝试一些AngularJS教程,并尝试创建一个简单的网站 我有一个指令,它创建了一个侧导航栏,并根据存储在服务器上的一些json数据填充项目列表。已填充名称列表,但没有问题 问题是,我需要在多个控制器之间共享该名称,但我没有这样做的运气 My app.js包含:Javascript 在AngularJS之间共享数据,javascript,angularjs,angularjs-directive,angularjs-service,Javascript,Angularjs,Angularjs Directive,Angularjs Service,我一直在尝试一些AngularJS教程,并尝试创建一个简单的网站 我有一个指令,它创建了一个侧导航栏,并根据存储在服务器上的一些json数据填充项目列表。已填充名称列表,但没有问题 问题是,我需要在多个控制器之间共享该名称,但我没有这样做的运气 My app.js包含: var app = angular.module("Myapp", ['ui.bootstrap']); app.service('nameService', function() { var name = "";
var app = angular.module("Myapp", ['ui.bootstrap']);
app.service('nameService', function() {
var name = "";
this.setName = function(name) {
this.name = name;
}
this.getName = function() {
return name;
}
});
app.directive("sideBar", ['$http', function($http) {
return {
restrict: 'E',
templateUrl: "views/sidebar.html",
controller: function($scope) {
$scope.updateName = function(name) {
alert(name);
};
$http.get('../data/names.json').
success(function(data, status, headers, config) {
$scope.names = data;
}).error(function(data, status, headers, config) { });
}
};
}]);
从我所读到的内容来看,您应该能够将服务作为依赖项注入,如下所示:
app.directive("sideBar", ['$http', 'nameService', function($http, nameService) {
然后我应该能够像这样更新值:
$scope.updateName = function(name) {
nameService.setName(name);
};
但是,当我尝试注入依赖项时,它会破坏整个指令,侧栏将不再加载
我一直在绞尽脑汁想弄清楚它为什么会在运气不好的情况下断裂。我有什么遗漏吗?还是我的做法完全错了?先做一些故障预防:在index.html中,是否在指令javascript之前加载服务javascript?如果你这样做了,它就不会违反指令。随时通知我们!一般做法是correct@GabrielPires这些都包含在我的app.js文件中。我还没有把东西拆开。Index.html包含该应用程序。js@GabrielPires在复制和粘贴您的JSFIDLE代码之后,它就工作了。。。我不知道为什么它本来就不起作用,但现在起作用了,不管怎样,谢谢你的时间!好吧,当我们不明白为什么有些东西不起作用时,这是不好的,但总要看到好的一面,它现在起作用了=