我正在尝试创建一个指令,该指令将获取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>
<span>{{user.name}}</span>
<span>{{user.email}}</span>
<br />
</div>
</div>
控制台日志返回为
我输出的输出(jsPanel)
当你看到&#34;测试&#34;变量是正确绑定的,ng-repeat
元素显示为注释,我不知道它为什么会这样返回。如果有人能解决问题,那么我可能会让它发挥作用。
我知道我可以在指令中访问users
数据$scope.users
。这里的问题是用户能够普遍使用该指令,所以我必须假设我不知道$scope
中的变量。
我陷入了这个地方,无法找到任何解决方案。任何建议或解决方案都会更有帮助。 :)
注意:在数据显示的指令之外没有语法错误(已测试)