我需要从控制器内部滚动到某个元素。
使用du-smooth-scroll
和href="#invoice-wrapper"
可以在html页面中的按钮和其他元素上正常使用。
<button du-smooth-scroll href="#invoice-wrapper">
<!--Invoice Form-->
<div id="invoice-wrapper"></div>
有没有办法从控制器内部激活相同的东西?
vm.scrollTo = (element) => {
du-smooth-scroll(element)
}
或类似的东西?有办法吗?
最佳答案
您可以使用$scope.$broadcast
并从指令中捕获事件,尽管仅当视图中存在du-smooth-scroll
时,此方法才有效。
// in your controller
vm.scrollTo = (element) => {
$scope.$broadcast("du-smooth-scroll", element);
};
// in your directive
$scope.$on("du-smooth-scroll", function (element) {
// call your function that does that scroll
});
我想以另一种方式建议创建一个全局
scrollTo
函数,该函数可在您的指令和控制器或任何地方使用$rootScope.scrollTo = function (element) {
// do the scroll thing
};
然后只需在控制器和指令中调用
$rootScope.scrollTo(element)
。关于javascript - 从 Controller 内部 Angular 滚动到元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45949637/