2017-08-30 46 views
0

在这个简单的例子:https://jsfiddle.net/4hxsu4rc/2/2sxc - 放置一个@ Content.field VAR JavaScript文件

是否有可能将经由<script src="myjs.js"></script>包括的js文件中的@ Content.myVarIntoJsFile? 由于它不是视图模板关联文件(_myview.cshtml)的一部分,因此默认情况下它不起作用。

我可以使这项工作的唯一方法是通过使整个JS内容_myview.cshtml里面像

<script type="text/javascript"> 
function myfunction(myvalue) { 
    alert('@Content.myVarIntoJsFile' + myvalue); 
} 
</script> 

但是这使得视图模板文件更难编辑,因为规模将是相当大的。我如何在外部JS文件中使用@ Content.field替换?

最好的问候, 若昂做这将是从内容领域创建一个隐藏的div并放入其数据

+0

评估和演示可以做的伎俩给你,但说实话,你应该避免使用它。 –

回答

1

有几个选项:)

什么@joecraig是在暗示,是使用系统,如

<div data-name="@Content.Name" data-age="@Content.Age">...</div> 

传输你的数据在HTML中,在你的JavaScript中使用。这适用于简单用例,并允许您将“业务”逻辑放在单独的JS文件中。

Pro-method是使用WebAPI,获取所需数据的JSON流,并获得乐趣。基本上所有2sxc数据都可以很容易地作为json使用,如果你需要的话。为了给你一个完美的答案,我需要知道你使用的是什么JS框架。

例如,如果你使用jQuery,那么这样的事情将让你键入“类别”的所有项目

var sxc = $2sxc(someTagInsideYourModule); 
var dataPromise = sxc.webApi.get("app/auto/content/Category"); 
dataPromise.then(function(result) { /* do something */ }); 

你可以阅读更多有关这对https://github.com/2sic/2sxc/wiki/WebApi

如果”重新使用其他框架 - 比如AngularJS,还有像Query-Service或Content-Service这样的助手。

PS:记得启用非管理员用户读取权限,否则在登录状态下的代码只会工作

1

的一种方式。使用div的id来检索它。

也许更好的方法是使用data- *属性来存储数据,这可以通过javascript找到。

这假设你不介意在你的页面源中有数据。

+0

我们还在谈论2sxc吗? –

相关问题