在Angular 1.5中使用Subject来获取服务值的解决方法如下:
myService
的Subject对象。angular.module('myApp').service('myService', function() {
var subject = new Rx.Subject();
// 提供一个公共方法来发布新的值
this.publishValue = function(value) {
subject.next(value);
};
// 提供一个公共方法来订阅值的变化
this.subscribeValue = function(callback) {
subject.subscribe(callback);
};
});
myService
并使用subscribeValue
方法来订阅值的变化。angular.module('myApp').controller('myController', function($scope, myService) {
// 订阅值的变化
myService.subscribeValue(function(value) {
$scope.value = value;
});
});
publishValue
方法来发布新的值。angular.module('myApp').controller('anotherController', function(myService) {
// 发布新的值
myService.publishValue('新的值');
});
这样,当调用publishValue
方法时,值会被发布,并通过subscribeValue
方法订阅值的变化的控制器将接收到新的值并进行相应的操作。
上一篇:Angular 1.5 ngMaterial 的 Karma 单元测试
下一篇:Angular 1.5中,所有<select>选项都被设置为selected="selected"。