我正在处理一个指令来处理表设置,特别是pageSize。
<table-settings page-size="pagination.pageSize" sizes="PAGE_SIZES" </table-settings>
我面临范围阴影的问题,因为pageSize
param是一个原始的,它被绑定到另一个指令(下拉菜单)中的ng-model
。
我知道我可以使用像pageSize = {value:5}
这样的对象,但它不方便/自然使用。
我不太喜欢使用$ parent ng-model='$parent.pageSize'
,因为我不确定它引用了哪个$ parent。
所以我决定添加一个指向指令范围的指针,我可以使用指针&#34;范围&#34;我的约束力 在模板内。 (比如使用controller / controllerAs语法)
基本上看起来像这样
link: function(scope, elem, attr, controller) {
scope.tableSettings = scope;
}
它的使用方式如下:
<input type="text" ng-model="tableSettings.pageSize">
所以我想知道这是好还是坏? 如果这是一个坏主意,如果你有一个更好的主意?
谢谢!
答案 0 :(得分:0)
如果假定您的指令始终需要具有Controller的特定父指令,则可以使用指令设置中的require
选项来要求该控制器为父控制器(不一定是直接父控制器)。
作为奖励,您可以将该控制器注入link
功能,然后您可以从那里获取参数。
在文档中了解更多相关信息(https://docs.angularjs.org/guide/directive - 在底部寻找“创建沟通指令”)