我们如何从 Javascript 访问 umbraco 字典项的值

How can we to access value of umbraco dictionary item from Javascript

我们可以从 JavaScript 访问 Umbraco 词典项目值吗?

因为我使用的是 Umbraco 6.0.5

据我所知,您无法开箱即用 - 不过还没有真正尝试过。

我首先会在我的网站上创建一个简单的休息服务,returns Umbraco 字典项目使用查询字符串参数作为别名值

var alias = HttpContext.Current.Request.QueryString["alias"]
if(alias != null)
{
    var dictionaryItem = umbraco.GetDictionaryItem(alias) 
    ...
}  

然后通过javascript调用自己的webservice获取值

不,您不能开箱即用。

我不得不多次这样做,而我想出的最好方法是在页面加载时将所有字典项目打印为一个对象(在 <head> 或其他地方)。诅咒当前语言的唯一项目。

所以在你的来源中你有

<script>
    var dic = {"quantity":"Quantity","totalPrice":"Total price","securePayment":"Secure payment"};
</script>

然后get就是

window.dic["quantity"]

我所做的是在使用 Javascript

中声明变量
<script type="text/javascript">    
    var UmbracoDicKeyValue = '<%= kraftvaerk.umbraco.Translations.translate("Umbraco_Dic_Key", lang) %>';
</script>

以及从服务器端设置 lang 变量的值。

protected string lang = (!String.IsNullOrEmpty(umbraco.library.Session("lang")) ? umbraco.library.Session("lang") : "en-GB");
umbraco.library.setSession("lang", lang);

现在在 javascript 代码中使用变量 UmbracoDicKeyValue。