想象一下,我有一个单例用户界面元素,我想为整个应用程序提供服务。
以下“工作”,setMessage()
可在应用程序的任何位置使用,通过$ rootScope:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.17/angular.js"></script>
<body ng-app="myApp">
<script>
angular.module('myApp', [])
.directive('myDirective', function($rootScope) {
return {
scope : {},
template: '<div>Status: {{contents}}</div>',
controller: function($scope) {
$rootScope.setMessage = function(contents) {
$scope.contents = contents;
};
}
};
});
</script>
<div my-directive=""></div>
<button ng-click="setMessage('clicked')">Click Me</button>
</body> </html>
它有效,但我不喜欢它。它对我来说并不感到羞涩。我一直在想要创建一个导出函数来设置值的服务和另一个函数来获取它,但这并没有更好的味道。
有什么建议吗?