入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

angularjs 中英文切换功能

创建时间:2018-03-20 投稿人: 浏览次数:443

首先,默认是中文的

定义一个变量 $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。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像