javascript - 从 Controller 内部 Angular 滚动到元素

标签 javascript angularjs

我需要从 Controller 内部滚动到一个元素。

使用 du-smooth-scrollhref="#invoice-wrapper" 在 Angular html 页面内的按钮和其他元素上效果很好。

<button du-smooth-scroll href="#invoice-wrapper"> 

<!--Invoice Form-->
<div id="invoice-wrapper"></div>

有没有办法从 Controller 内部激活相同的东西?

vm.scrollTo = (element) => {
    du-smooth-scroll(element) 
}

或者类似的东西?有办法吗?

最佳答案

您可以使用 $scope.$broadcast 并从指令中捕获事件,但这只有在您的 View 中存在 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 函数,该函数可以在您的指令和 Controller 或任何地方使用

$rootScope.scrollTo = function (element) {
  // do the scroll thing
};

然后只需在 Controller 和指令中调用 $rootScope.scrollTo(element) 即可。

关于javascript - 从 Controller 内部 Angular 滚动到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949637/

相关文章:

javascript - React Native 中的 KeyboardAvoidingView 不显示键盘

javascript - 使用 carto.js 和传单库将圆添加到 map

javascript - var X=Y 仅在空格之前传输字符串。 Y = regex.exec(字符串);

javascript - 您如何模拟作为函数的 Angular 服务?

css - AngularJS 中的粘性 Bootstrap 页脚

javascript - 如果通过 ajax 加载,则无法初始化 jssor slider

javascript - 通过拖动使 d3 div 可调整大小

javascript - 提取部分 JSON 对象结果

javascript - 从ngResource获取数据,然后绑定(bind)result到view

html - fieldset 没有完全显示在 div 周围