我创建了一个ListCtrl
,负责从服务器获取数据并对其进行分页(它适用于我的所有资源)。但是,在设置资源路径,默认限制等之前,它必须收到一些configurations
...
我认为这样做的方法是在更大的Controller中使用我的ListCtrl,但是用这样的几个参数初始化它:
<div ng-controller="DashboardCtrl as dashboard">
<div ng-controller="ListCtrl as list" ng-init="list.init(dashboard.listParams)">
<... Iterate through list.items ...>
</div>
</div>
阅读一些文章,我看到使用ng-init
并不好,并且只应用于列表初始化。有没有使用ng-init
更好的方法?或者这只是好的
答案 0 :(得分:0)
考虑使用directive而不是直接将控制器附加到DOM元素。指令允许您显式处理控制器之间的传递数据,而不依赖于全局状态(许多解决方案使用服务有效地依赖于该状态)。
您可能希望创建一个接受某种配置的指令,然后您可以通过属性传递该指令。
"react": "^0.14.0-beta3",
"react-dom": "^0.14.0-beta3",
"react-router": "^1.0.0-beta3",
"react-document-title": "^2.0.0",
angular.module('yourApp').directive('yourList', function () {
return {
bindToController: true,
controller: 'ListCtrl',
controllerAs: 'list',
scope: {
params: '='
}
};
});
<div ng-controller="DashboardCtrl as dashboard">
<your-list params="dashboard.listParams"></your-list>
</div>
属性将在params
的范围内提供。要处理指令使用的模板,您可以使用单独的部分,或者可以使用transclusion将元素保留在主模板中。