javascript - 从 AngularJS 中的 View 调用 Controller 函数

标签 javascript angularjs

我的 BlogController 中有一个函数可以改变 div 的高度。

$scope.setTopBackgroundHeight = function (screenProportion, targetDiv) {
  globalService.setTopBackgroundHeight(screenProportion, targetDiv);
};

我在几个页面上使用这个 Controller ,但只想在一个页面上调用这个函数。所以我将调用放在我的 View 中,如下所示。

<div id="primary" 
     class="content-area blog-page" 
     ng-controller="blogCtrl">
     {{$scope.setTopBackgroundHeight("half", ".background-container");}}
</div>

现在,这可行了。但是从 View 中的大括号内调用函数可以明智地进行风格吗?我试图找到以 Angular 方式做这样的事情的例子,但看不到任何东西。它应该在某个 ng 指令中吗?

最佳答案

是的,所有 DOM 操作都应该在指令内完成。因此,在这种情况下,最好将指令附加到调用该服务方法的 div 上。

HTML:

<div id="primary" 
     class="content-area blog-page" 
     ng-controller="blogCtrl"
     setBGHeight>
</div>

JS:

app.directive('setBGHeight', function(globalService) {
  return {
    link: function() {
      globalService.setTopBackgroundHeight("half", ".background-container");
    }
  }
));

关于javascript - 从 AngularJS 中的 View 调用 Controller 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26951152/

相关文章:

angularjs - HTML 和 JSON 响应的 URL 相同

javascript - 使用替换实现格式 x xxx,xx

javascript - Jasmine 测试中从未调用 AngularJS 指令的链接函数

javascript - 具有多种功能的 Angular 自定义计算器

javascript - 如何在ng-repeat中显示选定的数据

javascript - Angular : ng-src Fallback

javascript - 解析 javascript 正则表达式 : someString. replace(/^.*,/, '')

Javascript 空间函数

javascript - 平滑扩展 Div 不滞后

javascript - 使用 handsontable 强制卡住列行调整大小