如何在angularjs中读取服务内部的变量
how to read a variable inside service in angularjs?
我想知道如何获得服务内部变量的值,我有以下代码:
myModule.service('notify', ['$window', function(win) {
var msgs = []; // I want to read this variable
this.message = function(msg) {
msgs.push(msg);
if (msgs.length == 3) {
win.alert(msgs.join("'n"));
msgs = [];
}
};
}]);
,我想从控制器中读取msgs变量
用var声明变量使它们成为函数作用域的局部变量。如果你想公开它,你可以将它存储在对象本身。
myModule.service('notify', ['$window', function(win) {
this.msgs = []; // I want to read this variable
this.message = function(msg) {
this.msgs.push(msg);
if (this.msgs.length == 3) {
win.alert(this.msgs.join("'n"));
this.msgs = [];
}
};
}]);
然后您可以通过读取
来检索服务上的消息。service.msgs
更好的模式是创建一个getter方法来检索消息。
myModule.service('notify', ['$window', function(win) {
var msgs = []; // I want to read this variable
this.getMessages = function () {
return msgs;
};
this.message = function(msg) {
msgs.push(msg);
if (msgs.length == 3) {
win.alert(msgs.join("'n"));
msgs = [];
}
};
}]);
然后您可以通过调用
来检索您的消息service.getMessages();
服务是用new
创建的,因此将公开附加到this
的任何内容。只需添加一个函数,将您的消息数组返回给this
。
myModule.service('notify', ['$window', function(win) {
var msgs = []; // I want to read this variable
this.message = function(msg) {
msgs.push(msg);
if (msgs.length == 3) {
win.alert(msgs.join("'n"));
msgs = [];
}
};
this.getMessages = function () {
return msgs;
}
}]);
1。你可以使用getter读取
myModule.service('notify', ['$window', function (win) {
var msgs = [];// I prefer _msgs for private variables
Object.defineProperties(this, {
msgs: {
get: function () {
return msgs;
},
/*set: function (val) {
msgs = val;
},*/ //if you need setter uncomment
enumerable: true
}
});
//other codes....
}]);
然后,您可以在控制器
console.log(notify.msgs);
相关文章:
- 从函数内部、类内部、模块内部访问 Angular 服务
- 测试angular服务内部方法调用
- 在异步内部函数返回 [UI-路由器和 HTML 服务] 之后返回外部 fn
- 将服务字符串参数转换为数组的 Angular 内部
- 内部服务器错误在 post 请求中使用 Angular js 中的自定义服务
- AngularJS - 在服务内部对数组进行排序,在控制器/视图中保留绑定
- mdSidenav服务可以'当一个组件's在Angular组件内部
- 服务内部的数据更改不会更新作用域
- 当数组是服务内部对象的属性时,如何在页面上逐个显示数组元素
- Express.js:调用内部服务
- 我需要一个地图服务,将显示鸟瞰图(用于内部使用非公众-登录所需)
- 如何为消息属性提供公共服务,仍然可以从web项目内部访问它们
- forEach内部提供商服务AngularJS
- 如何在angularjs中读取服务内部的变量
- angular服务内部的函数(又一次)没有被视为函数
- 从AngularJS服务内部访问$scope属性
- 不能在angular服务中更新函数内部的值
- AngularJS服务内部的promise返回值似乎会改变
- wcf服务内部服务器错误
- 在Angular JS中从decorator内部调用工厂服务