只是想知道你的想法,这将是我如何将外部 json 数据文件存储到服务中的方法,以便我可以将其注入到不同的控制器中
谢谢
尝试使用ngTranslation模块。使用此服务,您可以将静态内容(一些 json 文件等)存储在代码之外,而不会弄脏您的控制器/服务...
示例:
JS:
angular.module('app', ['ng-translation'])
.config(['ngTranslationProvider', function(ngTranslationProvider) {
ngStaticProvider
.setDirectory('/assets/static')
.setFilesSuffix('.json')
.langsFiles({
demo1: 'demo1',
demo2: 'demo2'
})
}]);
//inject to controller
function PanelController($scope, translateFilter) {
$scope.panelContent = translateFilter('key','fileName')
}
HTML:
<!-- use as a filter {{ key | translate: fileName }}-->
<p>{{ key | translate: fileName }}</p>
<!-- use ng-translate directive, similar to ng-bind-->
<p ng-translate="file(key)"></p>
好吧,这完全取决于您的应用程序的体系结构,但我想您可以创建一个工厂或服务来存储数据,然后在需要的地方简单地注入该工厂。
如果数据需要持久化,我会使用 localStorage 之类的东西。如果数据量非常小并且您的应用程序不支持 HTML5,我会使用 cookie。
你越详细,你得到的答案就越准确。
看看 angularjs 教程。它专门解决了这个问题。首先通过http://docs.angularjs.org/tutorial/step_05在控制器中包含 json。然后按照http://docs.angularjs.org/tutorial/step_11将其移至服务。
$http.get() 也可用于从 REST url 检索数据。