2013-10-08 27 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

相关问题