-1

我正在尝试将 jQuery 的这一部分放入 AngularJS 指令中

      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));
    }; 
 });

但是正如我们在这篇文章的第一部分中看到的那样,jQuery 也有一个 if/else 语句,我怎样才能注入 HTML 位或者我必须在指令中自己做呢?如果是这样 - 我该怎么做?

提前致谢!

4

1 回答 1

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);
   }; 
});

你可以只写200and truein content-panel="...",而不是'200'and'true'

于 2013-10-08T08:18:16.960 回答