Ionic App之国际化(2) json数组的处理
在Ionic App值国际化(1)中我们实现了对单个参数的多语言处理,下面开始如何进行数组的处理。
1.在我们的多语言文件中设置要访问的json数组,en.json和zh.json,此处就以en.json中的MyLa为例
{
"LOGIN_REGISTER": "Login/Register",
"A" : "电动自行车A",
"B" : "电动三轮车B",
"MyLa":
{
"length" : ,
"values":[
{
"name" : "Huanhuan","value" : ""
},
{
"name" : "Alex","value" : ""
}
]
}
}
2.在view页面中访问MyLa下的values数组。本以为可以像一般的ng-repeate="v in MyLa.Values"这样去访问,可以多语言不支持直接访问数组,应该如下:
<ion-list ng-init="items = [0,1]">
<ion-item ng-repeat="item in items">
<h2>
{{ 'MyLa.values.'+item+'.name' | translate }}
</h2>
</ion-item>
</ion-list>
格式竟然是:MyLa.values.下标.属性名,仔细想想应该是在app.config函数中解析的时候,事先就是按这种模式处理的,以后用的时候就可以加载了。
虽然这样可以实现多语言的效果,但却需要单独的设置下标数组,本想在多语言文件中增加一个参数length 动态生成数组下标,无奈没成功。下面的代码(没成功)
<ion-list ng-init="items = getItems({{MyLa.length | translate }})">
<ion-item ng-repeat="item in items">
<h2>
{{ 'MyLa.values.'+item+'.name' | translate }}
</h2>
</ion-item>
</ion-list>
$scope.getItems = function( len)
{
var push = [];
for(var i =0 ; i< len;i++)
{
push.push(i);
}
return push;
}
此处主要是想把参数MyLa.length作为参数传给函数getItems获取数组下标素组,这样我们只需要在多语言文件中维护数据即可。
另外一种数组多语言的实现方式:
1.我们需要引入另外我们正常数据的json文件,读取的内容如下:
{
"cars":[
{"name":"A","value":""},
{"name":"B","value":""}
]
}
2.在en.json和zh.json文件中分别设置A,B对应的多语言,在前面的en.json中已经添加了。
3.在controller的方法中实现语言的翻译:
UserService.getCars().then(function(o)
{
$scope.carts = o.cars;
angular.forEach($scope.carts, function(type, index)
{
$translate(type.name, {type: type}).then(function(translated)
{
$scope.carts[index].name = translated;
});
});
});
此方法将数组对应的值转化为了单个读多语言参数,然后再controller中处理。
这种方法多出两步,1是要引入多语言之外的一个json文件,2是要在contoller中实现翻译。
两种方法似乎都不太完美,还未发现更优雅的出路方式。
Ionic App之国际化(2) json数组的处理的更多相关文章
- Ionic App之国际化(3) json数组的处理
接上一篇Ionic App之国际化(2) json数组的处理 之后,如何处理json数据长度的问题,目前的一个折中方法是翻译长度字段. 多语言文件内容: "MyLa": { &qu ...
- Ionic App之国际化(1)单个参数的处理
最近的app开发中需要考虑多语言国际化的问题,经查资料,目前大部分使用的是angular-translate.js这个组件,网站说明是这个:https://angular-translate.gith ...
- 使用QtScript库解析Json数组例子
本文转载自:http://blog.sina.com.cn/s/blog_671732440100uwxh.html 使用qtscipt库解析json数组首先在工程文件中加 QT += ...
- Ionic app升级插件开发
终于走到了写插件的这个地方了,插件的过程: 1.安装plugman插件,管理我们的程序 npm install -g plugman 2.创建插件项目appUpgrade,cd 到你的目标目录下,执行 ...
- Android-Gson解析JSON数据(JSON对象/JSON数组)
上一篇博客,Android-解析JSON数据(JSON对象/JSON数组),介绍了使用 org.json.JSONArray;/org.json.JSONObject; 来解析JSON数据: Goog ...
- Android-解析JSON数据(JSON对象/JSON数组)
在上一篇博客中,Android-封装JSON数据(JSON对象/JSON数组),讲解到Android真实开发中更多的是去解析JSON数据(JSON对象/JSON数组) 封装JSON的数据是在服务器端进 ...
- Android-封装JSON数据(JSON对象/JSON数组)
Android-封装JSON数据(JSON对象/JSON数组),一般情况下不会在Android端封装JSON的数据,因为封装JSON的数据是在服务器端进行封装了,Android更多的工作是解析(JSO ...
- 【ionic App问题总结系列】ionic 如何更新app版本
ionic 如何进行自动更新 ionic App更新有两种方式:第一种是普通的从远程下载apk,安装并覆盖旧版本.另外一种就是采用替换www文件夹的内容,实现应用内更新,而无需下载安装apk. 这篇文 ...
- json数组某个数值对应渲染
当你统计某一年的某个值它对应的月份总数时,后台没有直接处理好,某个月对应某个值,这样会增加统计的负担,但当数据时这样的时候,在angularjs中时不能直接引用的. "data": ...
随机推荐
- SEO高级技巧
原文地址:http://www.it28.cn/sousuoyinqing/853115.html 现在提起SEO来最少能让一部人感到痛苦,为什么呢,因为他们看不到希望,他们追求的永远是排名,其实SE ...
- Android开发常用的一些功能列表(转)
文章来源:http://www.cnblogs.com/netsql/archive/2013/03/02/2939828.html 1.软件自动更新下载,并提示 2.软件登录注册,以及状态保存 3. ...
- MVC与单元测试实践之健身网站(八)-统计分析
统计分析模块与之前的内容相对独立,用于记录并跟踪各部位围度的变化.还需提供对所作计划的分析,辅助使计划更合理. 一 围度记录 这儿可以记录各项身体围度指标,现在包括体重在内身体上上下下基本全部提供了 ...
- 言传菜单JSON数据
{ "button": [ { "name": "快速发布", " ...
- [20171225]变态的windows批处理4.txt
[20171225]变态的windows批处理4.txt --//昨天学习windows 批处理的echo &.使用它可以实现类似回车换行的功能.例子: 1.echo &.R:\> ...
- [20171113]修改表结构删除列相关问题3.txt
[20171113]修改表结构删除列相关问题3.txt --//维护表结构删除字段一般都是先ALTER TABLE <table_name> SET UNUSED (<column_ ...
- python第六天 函数 python标准库实例大全
今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...
- 通过explain分析低效的SQL执行计划
之前我们讲过如何开启慢查询日志,这个日志的最大作用就是我们通过设定超时阈值,在执行SQL语句中的消耗时间大于这个阈值,将会被记录到慢查询日志里面.DBA通过这个慢查询日志定位到执行缓慢的sql语句,以 ...
- Win10上启动UICrawler自动遍历时报 "org.openqa.selenium.WebDriverException: An unknown server-side error occur red while processing the command. Original error: Could not sign with default certifi cate."
操作步骤: 1.直接启动 Appium (我用的是 version 1.10.0) 2.打开命令窗口,切换到 UICrawler 所在路径 3.执行命令 java -jar UICrawler-2.2 ...
- python之面向对象进阶
接口类 抽象类 钻石继承 多态 鸭子类型 接口类 接口类 继承有两种用途: 一:继承基类的方法,并且做出自己的改变或者扩展(代码重用) 二:声明某个子类兼容于某基类,定义一个接口类Interface, ...