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

前端之家收集整理的这篇文章主要介绍了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相关文章