2013-08-06 40 views
1

我聽說你不能在JavaScript中使用剃鬚刀,但我不確定這是否是真的,因爲它接受了我的代碼的第一行,但抱怨其餘的。我在我的模型的列表,我試圖得到了一個元素的集合在一個JavaScript動態二維數組,語法錯誤JavaScript和剃刀

function CollectExt() { 
      var numberOfLines = '@Model.NumberOfLines'; 
      for (var i = 0; i < numberOfLines; i++) { 
       var extCollection = {(i+1): '@Model.PhoneDisplay[i].dnorpattern' }; 
      } 

     } 

我想不聲明數組,並填滿它取決於我的行數。

編輯 我只是嘗試這樣做,但它並沒有看到 '我' 裏面的for循環

function CollectExt() { 
      var numberOfLines = '@Model.NumberOfLines'; 
      var collection = []; 
      for (var i = 0; i < numberOfLines; i++) { 
       numberOfLines.push('@Model.PhoneDisplay[i].dnorpattern'); 
      } 
     } 
+0

_「...但它沒有在for循環中看到'i'_。這是因爲'i'在字符串中。 – Broxzier

回答

1

JavaScript不能運行C#代碼。你的循環需要在剃刀中。但在這種情況下你甚至不需要循環。

function CollectExt() { 
    var stuff = '@string.Join(",", Model.PhoneDisplay.Select(p => p.dnorpattern))'; 
    var collection = stuff.split(","); 
} 
+0

不錯的技巧,這個集合可以像數組一樣訪問嗎? – laitha0

+0

是的。 'stuff.split'是一個JS函數,它按給定的分隔符分割一個字符串並返回一個數組。 – Artless