angularjs 中英文切换功能
首先,默认是中文的
定义一个变量 $scope.flag 作为控制中英文切换的标记,默认值为false,$scope.flag = false ,true为英文,用$localstorage来对数据进行本地存储,$localstorage是不会自动清除缓存的即使关闭浏览器,$sessionstorage浏览器关闭后缓存自动消失、
先判断是否是第一次进入该网站,如果没有缓存的话,则flag为false并且给默认的中文数据,如果已经有缓存的话则获取缓存的flag和缓存的数据
controller中调用服务: 先注入服务,再set get
$scope.changeLanguage = function(){
$scope.flag = !$scope.flag;
if($scope.flag==true){
$scope.data ={英文数据,json格式}
}else{
$scope.data ={中文数据,json格式}
}
//缓存数据
$localstorage.setObject("app_language", $scope.data);
$localstorage.set("status", $scope.flag);}定义服务
.factory("$localstorage", ["$window", function ($window) {
return {
set: function (key, value) {
$window.localStorage[key] = value;
},
get: function (key, defaultValue) {
return $window.localStorage[key] || defaultValue;
},
setObject: function (key, value) {
$window.localStorage[key] = JSON.stringify(value);
},
getObject: function (key) {
return JSON.parse($window.localStorage[key] || "{}");//获取字符串并解析成对象
},
removeItem: function (key) {
$window.localStorage.removeItem(key);
},
clear: function () {
$window.localStorage.clear();
中间有出现的问题是:缓存的flag的数据类型是字符串的,所以需要用eval()方法将字符串转为boolean,然后再去判断
、
这种的话,通过判断红色框里面是否有值,也就是字符串的长度去判断
var companyName = $("#company_error").text().replace(/ +/g, "");
if (companyName.replace(/[
]/g, "").length !== 0) {
$rootScope.check_company();
}有另外一个失去焦点的方法去判断是否出现提示,现在是对是否有出现提示,有的话对内容进行翻译
另外一点就是中英文切换的时候样式会有些问题,可以对样式做适当的调整或是中英文各对应一个样式表
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: AngularJs根据获取到的数值转换成对应的中文
- 下一篇: angularjs数字转化为大写
