angularjs – 指令应该与Angular JS中的控制器通信吗?

我一直在观看John Linquist的视频,他在一个视频中给出了这个例子:
var app = angular.module('twitterApp',[])

app.controller("AppCtrl",function ($scope) {
   $scope.loadMoreTweets = function () {
      alert("Loading tweets!");
   }
}

app.directive("enter",function() {
   return function (scope,element,attrs) {
      element.bind("mouseenter",function () {
         scope.LoadMoreTweets();
      })
   }
}

我想知道的一件事是,这个例子中的指令应该与控制器对话,还是创建服务然后让指令与服务对话是一种更好的编程习惯?我想我仍然不确定指令以这种方式与控制器通信是否是常见做法.

U tube video

我该怎么做
<span enter="loadMoreTweets()">Something</span>

JS

app.controller('AppController',function ($scope) {
   $scope.loadMoreTweets = function () {
      console.log("Loading tweets!");
   }  
})



app.directive("enter",function() {
   return {
     link: function (scope,attrs) {
       element.bind("mouseenter",function () {
          scope.$apply(attrs.enter)
       })
     }
   }
});

演示:Plunker

实现同样的另一种方式

app.directive("enter",function() {
   return {
    scope: {
      callback: '&enter'
    },link: function (scope,function () {
          scope.$apply('callback()')
       })
     }
   }
});

演示:Plunker

相关文章

AngularJS 是一个JavaScript 框架。它可通过 注:建议把脚本放在 元素的底部。这会提高网页加载速度,因...
angluarjs中页面初始化的时候会出现语法{{}}在页面中问题,也即是页面闪烁问题。出现这个的原因是:由于...
AngularJS 通过被称为指令的新属性来扩展 HTML。AngularJS 指令AngularJS 指令是扩展的 HTML 属性,带有...
AngularJS 使用表达式把数据绑定到 HTML。AngularJS 表达式AngularJS 表达式写在双大括号内:{{ expres...
ng-repeat 指令可以完美的显示表格。在表格中显示数据 {{ x.Name }} {{ x.Country }} 使用 CSS 样式为了...
$http是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。读取 JSON 文件下是存储在web服务器上...