我们可以从 JavaScript 访问 Umbraco Dictionary 的项目值吗?
当我使用 Umbraco 6.0.5
我们可以从 JavaScript 访问 Umbraco Dictionary 的项目值吗?
当我使用 Umbraco 6.0.5
不,你不能开箱即用。
我必须多次这样做,而我想出的最好方法是在页面加载(<head>
或其他内容)时将所有字典项打印为一个对象。诅咒当前语言的唯一项目。
所以在你的来源中你有
<script>
var dic = {"quantity":"Quantity","totalPrice":"Total price","securePayment":"Secure payment"};
</script>
然后得到是
window.dic["quantity"]
据我所知,你不能开箱即用——但实际上还没有尝试过。
我将首先在我的网站中创建一个简单的休息服务,该服务使用查询字符串参数作为别名值返回 Umbraco 字典项
var alias = HttpContext.Current.Request.QueryString["alias"]
if(alias != null)
{
var dictionaryItem = umbraco.GetDictionaryItem(alias)
...
}
然后通过javascript调用自己的webservice来获取值
我所做的是在使用 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。