我一直在观看约翰·林奎斯特的视频,并在一个视频中以此为例:
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();
})
}
}
Run Code Online (Sandbox Code Playgroud)
有一两件事我想知道的是应该在这个例子中,指令顶嘴控制器或者这将是一个良好的编程习惯,以创建一个服务,然后让指令跟一个服务?我想我仍然不确定指令以这种方式与控制器通信是否是常见做法.
我该怎么做呢
<span enter="loadMoreTweets()">Something</span>
Run Code Online (Sandbox Code Playgroud)
JS
app.controller('AppController', function ($scope) {
$scope.loadMoreTweets = function () {
console.log("Loading tweets!");
}
})
app.directive("enter", function() {
return {
link: function (scope, element, attrs) {
element.bind("mouseenter", function () {
scope.$apply(attrs.enter)
})
}
}
});
Run Code Online (Sandbox Code Playgroud)
演示:Plunker
实现同样的另一种方式
app.directive("enter", function() {
return {
scope: {
callback: '&enter'
},
link: function (scope, element, attrs) {
element.bind("mouseenter", function () {
scope.$apply('callback()')
})
}
}
});
Run Code Online (Sandbox Code Playgroud)
演示:Plunker