在复杂的AngularJS应用中使对象全局可访问和可操作的最好方法
Best way to make object globally accessible and manipulable in complex AngularJS app?
首先,如果这个问题是重复的,我很抱歉(我知道它看起来很像一个问题),但我有一些特定的要求,我不确定其他解决方案是否能满足这些要求。他们可能是,但我一点也不确定。
我正在使用AngularJS构建一个HTML5+CSS3+JS web应用程序,使用node webkit部署为桌面应用程序。这款应用程序可以运行一项竞技赛事,随着比赛的进行,按积分对球队和竞争者进行排序,以及其他一些任务。
应用程序将有多个组件,都需要能够访问和编辑比赛,以及本地存储比赛(可能作为JSON对象)。
目前,我计划将锦标赛创建为单个对象,其他对象(团队,竞争对手,裁判)嵌套在其中。什么是最好的方式来创建这个比赛,以满足我的要求?
我还需要能够在以后的应用中添加新部件,并轻松地赋予这些组件相同的能力(查看和更新比赛对象)。
多谢!
设置一个工厂/服务,并从那里返回锦标赛对象,或者使用它的方法。然后,您可以将该服务注入到您希望访问它的任何控制器中。你也可以定义引用锦标赛对象的作用域变量,使它可以从你的应用指令中访问。
我曾经将所有全局变量移动到$ootScope。但最好不要阻塞它,您可以使用单个对象来实现此目的。
angular.module('sampleApp', [])
.config(['$compileProvider', function ($compileProvider) {
$compileProvider.debugInfoEnabled(false);
}])
.run(['$rootScope', function ($rootScope) {
$rootScope.globalVars = {};
}])
.controller('mainController', ['$scope', '$rootScope', function ($scope, $rootScope) {
$rootScope.globalVars.name = "Batman";
}])
.directive('plugin', ['$compile,$rootScope', function ($compile, $rootScope) {
return {
restrict: 'A',
link: function (scope, $element, attrs) {
console.log($rootScope.globalVars.name); //Batman
}
}
}]);
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 从JavaScript访问struts操作中的属性
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- 访问NeedLogin操作后不重定向到登录页面
- Javascript D3如何从CSV访问和操作数据集
- 如何通过查找函数及其 ID 访问和操作 HTML 表
- 访问可扩展QML应用程序中的列表视图索引
- 自定义渲染器未应用于表渲染手动可操作
- ZF2-Can't在zend框架2上使用jQuery.ajax访问控制器操作
- 如何在javascript中访问可折叠面板的扩展状态?(富人脸 4.5.0.最终版)
- 如何从不同的对象作用域访问可观察对象
- 我的javascript提示脚本不起作用.访问和操作DOM
- 访问可观察对象数组中的对象字段.KnockoutJS
- Knockoutjs计算无法访问可观察值
- 通过JS/jQuery访问和操作DOM中的子元素
- javascript可操作的SVG通过ajax
- 可操作的自动完成弹出/显示以上单元格
- AngularJS搜索输入框带有动态的和可操作的图标
- 在复杂的AngularJS应用中使对象全局可访问和可操作的最好方法
- Horizon客户端库:按组可操作