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(); }
有另外一个失去焦点的方法去判断是否出现提示,现在是对是否有出现提示,有的话对内容进行翻译
另外一点就是中英文切换的时候样式会有些问题,可以对样式做适当的调整或是中英文各对应一个样式表
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了