从AngularJS中的视图调用控制器函数

时间:2014-11-15 21:54:04

标签: javascript angularjs

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

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

我在几页上使用此控制器,但只想在一页上调用此功能。所以我把这个电话放在我看来如下。

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

现在,这有效。但是从视图中的花括号内调用一个函数确定风格明智吗?我试图找到以角度方式做这样的事情的例子,但却看不到任何东西。它应该在某个ng指令中吗?

2 个答案:

答案 0 :(得分:1)

是的,所有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");
    }
  }
));

答案 1 :(得分:0)

这是指令的用途。确保为它们添加前缀,例如角度为&#34; ng-click&#34;但是不要使用ng。