2017-08-30 50 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嗎? –

相關問題