我有一个指令用于跨多个页面执行相同的搜索过滤。因此,该指令将使用服务并使用大量代码。因此,我想链接到一个 Controller ,而不是像这样在指令中放置 Controller :
.directive('searchDirective', function($rootScope) {
return {
restrict: 'E',
templateUrl:'searchtemplate.html',
controller: 'searchCtrl',
controllerAs: 'search'
};
});
我还想访问模板内的父范围数据,所以我不想使用隔离范围。
无论如何,我不确定该怎么做。我的指令如下所示:
<search-directive filter="foo"/>
如何在过滤器属性中传递值,以便我可以在我的 Controller 中使用 $scope.filter 或 this.filter 访问它?
如果我使用的是隔离范围,那就很简单了。如果我在同一页面中有 Controller ,我可以使用 $attrs。但是由于我使用的是来自另一个地方的 Controller 并且不想要一个隔离的范围,所以我不确定如何将 attrs 值获取到 Controller 中。
有什么建议吗?
最佳答案
使用链接函数并将值传递给范围怎么样?
return {
restrict: 'E',
templateUrl:'searchtemplate.html',
controller: 'searchCtrl',
controllerAs: 'search',
link: function (scope, element, attr) {
scope.filter = attr.filter;
}
};
关于javascript - 将指令属性传递给链接 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32314962/