我有一个可重复使用的 动态表格指令 :
指令:
<div dynamic-table schema="ThisTableSchema" datasource="someDatasource"></div>
该指令只需将该特定表的硬编码attr字符串插入指令本身的$ http API字符串即可轻松获取每个相应表的模式。
数据源:
数据源是另一回事;它需要 来自每个表的控制器 ,因此在表的控制器获取数据源之前会导致指令触发的计时问题。
目前,我的指令有一个 $ watch方法,这解决了时间问题。
$scope.$watch('datasource', function(newValue, oldValue){
if(angular.isDefined(newValue)){
$scope.docs = newValue
}
});
我理解 $ watch 方法的替代方法,如果存在性能问题,则为 $ state的解析方法。
$状态:(是动态的 - 源自db ---使用$ ocLazyLoad - 不在app.config中)
$ State是动态的,并在app.run中实例化,我无法在我的app.config中对解析方法进行硬编码,以解决那些需要上述指令的表数据的状态。尽管存在决心问题,但动态仍然有效。
我在互联网上找到了关于如何处理动态ui-router的解析方法的绝对零信息(代替使用$ watch方法)。
尽管我付出了最大的努力,但我还没有成功地使用动态$ state resolves。
关注$ watch方法:
我关注$ watch方法。我的大多数页面都包含一个动态表,因此该指令将在许多页面上。
___________________________________________________________________________
以下是我的问题:
虽然上述指令有很多视图,但一次只有一个可见视图。这是否会降低性能问题?
如果我确实让自己面临性能问题,当一个人的ui路由器是动态的时候,如何处理一个解决方法呢?
app.run(){
....
MenuSvc.all().success(function (states) {
angular.forEach(states, function (state) {
//THIS DOES NOT WORK:
state.resolve = {
'myResolveAlias': ['A_Particular_Tables_Svc',
function (A_Particular_Tables_Svc) {
return A_Particular_Tables_Svc.all();
}
]
// $stateProviderRef is a global variable
// instantiated in app.config, ie
// $stateProviderRef = $stateProvider
$stateProviderRef.state(state.name, state);
}
}
}