2013-10-08 43 views
-1

我試圖讓jQuery的這部分中的AngularJS指令將jQuery插件轉換爲AngularJS指令 - 如何應用if/else?

 jQuery('#contentpanel').layout(   { 
      center__paneSelector: "#centerpanel" 
      , west__size: 200 
      , west__paneSelector: "#westpanel" 
      , west__resizable: true 
      , center__onresize: function() { 
       if (bpOrgEditor != null) { 
        jQuery("#centerpanel").bpOrgEditor("update"); 
       } 
      }   }); 

我塞進這在一個HTML屬性,使它看起來這樣

content-panel="{ 
       center__paneSelector: '#centerpanel', 
       west__size:'200', 
       west__paneSelector: '#westpanel', 
       west__resizable: 'true' 
       }" 

並且角度中的指令看起來像這樣

app.directive("contentPanel", function() { 
    return function(scope, element, attrs) { 
     jQuery(element).layout(scope.$eval(attrs.contentPanel)); 
    }; 
}); 

b我們可以在這篇文章的第一部分看到,jQuery也有一個if/else語句,我怎樣才能注入HTML位,或者我必須在它自己的指令中做到這一點?如果是這樣 - 我該怎麼做?

在此先感謝!

+0

你可以發表小提琴/ Plunker? –

回答

0

如果bpOrgEditor是全球性的,並使用該指令時center__onresize選項八方通被設置爲功能,您可以嘗試:

app.directive("contentPanel", function() { 
    return function(scope, element, attrs) { 
     var opts = scope.$eval(attrs.contentPanel); 
     opts.center__onresize = function() { 
      if (bpOrgEditor != null) { 
       jQuery(opts.center__paneSelector).bpOrgEditor("update"); 
      } 
     } 
     jQuery(element).layout(opts); 
    }; 
}); 

而且你可以只寫200truecontent-panel="...",不'200''true'

+0

謝謝,那是它:) – Xeen

相關問題