我使用ng-repeat生成指令-a,并且在指令-a模板中也使用ng-repeat生成指令-subA。
我知道当我使用jquery来调用角度函数时,我必须调用$ apply()来提高摘要周期。
但是当我在控制台中调用$ apply()时,它会显示错误消息:
错误:[$ rootScope:inprog] ...
但结果是正确的。
如果我评论$ apply()调用代码,则不显示错误,但结果不是我想要的。
帮助我,PLZ。
这是我的数据结构:
tyep:{
id:'XXX',
name:'XXX'
}
product:{
id:'XXX',
name:'XXX'
}
specs:[type1,type2,type3]
products:[A,B,C]
查看
<div ng-controller="testController">
<test class="test" ng-repeat="spec in specs"
spec="spec" products="products"></test>
</div>
指令:测试
{
restirct:'E',
replace:true,
scope:{
spec:'=',
products:'='
},
template:
<div>
{{spec.name}}
<sub-test product="product"
ng-repeat="product in products">
</sub-test>
</div>,
link:function(scope,elem,attrs){}
}
指令:子测试
{
restrict:'E',
replace:true,
scope:{
product:'='
},
template:
<div>{{product.name}}</div>,
link:function(scope,elem,attrs){}
}
控制器:的TestController
$scope.products={};
$scope.specs={};
$scope.set=function(products,specs){
this.products=products;
this.specs=specs;
}
jquery的
$(function(){
specs:[type1,type2,type3];
products:[productA,productB,productC];
angular.element($('.test')).scope().set(specs,products);
angular.element($('.test')).scope().$apply();
})