angularjs - 使用jsPanel指令中的element.html()获取ng-repeat元素

时间:2017-08-21 07:04:15

标签: javascript jquery angularjs

我正在尝试创建一个指令,该指令将获取html内容并将其放置在jsPanel element

到目前为止,我能够编译范围并能够使用范围获取元素。然后我试着用ng-repeat得到html标签,我卡住了。
以下是用于创建指令

的代码
mainApp.directive('jspanelcontent', function($compile) {
    console.log("loading");
    var directive = {};
    directive.restrict = 'AE';
    directive.compile = function(element, attributes) {
        var linkFunction = function($scope, element, attributes) {
            console.log(element.html());
            var contenthtml = element.html();
            contenthtml = angular.element($compile(contenthtml)($scope));
            element.html("");
            $scope.jspanleinstance = $.jsPanel({
                position: {
                    my: "left-bottom",
                    at: "left-bottom",
                    offsetY: 15
                },
                theme: "rebeccapurple",
                contentSize: {
                    width: 600,
                    height: 350
                },
                headerTitle: attributes.panelcaption,
                content: contenthtml,
            });
            //  });
        }
        return linkFunction;
    }
    return directive;
});


在html中使用以下内容

<div jspanelcontent panelcaption="list">
  <div ng-controller="ListController">
    {{test}}
    <div ng-repeat="user in users">
      <span><a href="{{user.id}}">{{user.id}}</a></span>&nbsp;&nbsp;&nbsp;
      <span>{{user.name}}</span>&nbsp;&nbsp;&nbsp;
      <span>{{user.email}}</span>&nbsp;&nbsp;&nbsp;
      <br />
    </div>
  </div>


控制台日志返回为
console log 我输出的输出(jsPanel)

Output
当你看到&#34;测试&#34;变量是正确绑定的,ng-repeat元素显示为注释,我不知道它为什么会这样返回。如果有人能解决问题,那么我可能会让它发挥作用。
我知道我可以在指令中访问users数据$scope.users。这里的问题是用户能够普遍使用该指令,所以我必须假设我不知道$scope中的变量。
我陷入了这个地方,无法找到任何解决方案。任何建议或解决方案都会更有帮助。 :)
注意:在数据显示的指令之外没有语法错误(已测试)

0 个答案:

没有答案