Jquery Angularjs如何使用来自不同控制器的数据附加ng重复
我有两个控制器,pageController.js包含链接列表和表thead和空tbody,articleController.js带有一个指令,当在pagesController的ad内单击链接时,该指令会将数据附加到tbody 这是html文件Jquery Angularjs如何使用来自不同控制器的数据附加ng重复,jquery,angularjs,Jquery,Angularjs,我有两个控制器,pageController.js包含链接列表和表thead和空tbody,articleController.js带有一个指令,当在pagesController的ad内单击链接时,该指令会将数据附加到tbody 这是html文件 <div ng-controller='pageController as pg'> <ul> <li> /* This table is dynamically ap
<div ng-controller='pageController as pg'>
<ul>
<li>
/* This table is dynamically appended */
<a href="" sample-directive>Click Me</a>
<table>
<thead>
<tr>
<th>Field1</th>
<th>Field2</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</li>
</ul>
</div>
-
/*此表是动态追加的*/
字段1
字段2
articleController.js
此控制器应填充表tbody
myApp.directive("sampleDirective", function($compile, $parse, $rootScope) {
return {
scope: {
id: "=",
status: "@"
},
link: function($scope, $element, $attrs) {
var clickingCallback = function() {
var $elem = $("#"+id);
$scope.articleData = [{"id":1076,"article_master_id":24,"article_name":"Testtest"},{"id":1077,"article_master_id":24,"article_name":"test2"},{"id":1078,"article_master_id":24,"article_name":"test3"}]; /* some data it has */
var output = angular.element("<tr ng-repeat='fld in entryC.articleData' ng-show='entryC.articleData.length'>"+
"<td>{{ fld.article_master_id }}</td>"+
"<td>{{ fld.article_name }}</td>"+
"<td>{{ fld.id }} {{ entryC.articleData }}</td></tr>");
$elem.empty();
$elem.append($compile(output)($scope));
}
$element.bind('click', clickingCallback);
}
}
myApp.directive(“sampleDirective”,函数($compile,$parse,$rootScope){
返回{
范围:{
id:“=”,
状态:“@”
},
链接:函数($scope、$element、$attrs){
var clickingCallback=函数(){
变量$elem=$(“#”+id);
$scope.articleData=[{“id”:1076,“article_master_id”:24,“article_name”:“Testtest”},{“id”:1077,“article_master_id”:24,“article_name”:“test2”},{“id”:1078,“article_master_id”:24,“article_name”:“test3”};/*它拥有的一些数据*/
变量输出=角度。元素(“”)+
“{{fld.article_master_id}”+
“{fld.article_name}”+
“{{fld.id}{{entryC.articleData}}”);
$elem.empty();
$elem.append($compile(output)($scope));
}
$element.bind('click',clickingCallback);
}
}
标记属于pageController,单击此指令时,它将执行articleController.js下的链接回调函数
我能够触发指令的回调函数,
问题是ng repeat
无法执行,并且没有错误
非常感谢您提供一个工作示例,基本上您的ng repeat不起作用,因为您的模板是在摘要周期完成之前编译的 当您从run块手动编译和链接元素时 已为元素设置$watch处理程序,但$digest 阶段尚未发生。在$digest阶段中,作用域 检查所有$watch表达式并执行它们的 相应的手表处理器 以下是一个工作示例:-
var-app=angular.module(“myApp”,[]);
app.controller(“myCtrl”,函数($scope){
})
.directive(“sampleDirective”,函数($compile、$parse、$rootScope、$timeout){
返回{
范围:{
id:“@appenddiv”,
状态:“@”
},
链接:函数($scope、$element、$attrs){
var clickingCallback=函数(){
var$elem=angular.element(document.querySelector(“#”+$scope.id));
$scope.entryC={};
$scope.entryC.articleData=[{
“id”:1076,
“物品主id”:24,
“物品名称”:“测试”
}, {
“id”:1077,
“物品主id”:24,
“物品名称”:“测试2”
}, {
“id”:1078,
“物品主id”:24,
“物品名称”:“test3”
}]/*它有一些数据*/
var output=angular.element(“+”{fld.article_master_id}}”+“{fld.article_name}}”+“{fld.id}}}{{entryC.articleData}”);
$elem.empty();
变量内容=$compile(output)($scope);
$timeout(函数(){
$elem.replacetwith(内容);
});
};
$element.bind('click',clickingCallback);
}
};
});
-
/*此表是动态追加的*/
sdfsdfsfd
字段1
字段2
这是否意味着我只需要一次编译就可以让它正常工作?谢谢,!