2013-04-25 63 views
3

好吧,所以我只是進入指令,他們看起來很棒。我碰到一個問題,但:如何將數組傳遞到指令而不將其轉換爲字符串?

我需要傳遞一個圖像數組到一個指令,所以我可以通過一定的標準過濾它們。這裏是我的HTML調用指令:

<img cover="{{challenge.images}}"> 

這是我的指令:

myproject.directive('cover', function() { 
    return { 
     link: function ($scope, element, attrs) { 
      console.debug("attrs.cover", Array(attrs.cover)); 
     } 
    }; 
}); 

輸出是一個字符串。有沒有辦法來防止attr變成一個字符串?

回答

7

我假設在這裏,你不希望創建隔離範圍,所以:

myproject.directive('cover', function($parse) { 
    return { 
     link: function ($scope, element, attrs) { 

      var covers = $parse(attrs.cover)($scope); 
      console.debug("attrs.cover", covers); 
     } 
    }; 
}); 

,然後使用該指令,像這樣:

<img cover="challenge.images"> 
+0

是的!這工作!謝謝! – Dine 2013-04-26 09:08:49

+0

你也可以使用$ scope。$ eval(attrs.cover) – Shawn 2014-12-10 20:33:53

+0

如果你還想在同一個指令中有一個字符串選項,例如你可以設置 'var covers = $ parse(attrs.cover) attrs.cover;' – nicosierra 2016-04-08 10:43:30

相關問題