2013-10-30 76 views
0

我是angular js的新手。我正在嘗試從http://egghead.io/lessons/angularjs-directives-talking-to-controllers的例子,但不知爲什麼它似乎並沒有爲我工作正確。

這裏是我的html

​​

這裏是應用程序,控制和指導

var tApp= angular.module("twitterApp",[]) 

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

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

問題是下面的語句似乎是失敗的,因爲我做了我想不出理由完全是在演示中完成的方式。

scope.$apply(attrs.enter) 

我甚至試過,但錯誤控制檯顯示loadMoreTweets沒有找到,任何幫助非常感謝。

scope.loadMoreTweets() 
+0

如果您'的console.log(attrs.enter)'你怎麼在控制檯中看到了什麼? – Webnet

+0

它正確顯示屬性值「loadMoreTweets()」,但問題是控制器沒有註冊,因爲我的錯誤。我無法弄清楚,因爲scope。$ apply沒有引發任何錯誤。 – Raxit

回答

2
<div app-controller="AppCtrl"> 

應該

<div ng-controller="AppCtrl"> 
+0

感謝您指出錯誤。控制器沒有註冊,但行爲沒有正確註冊,因此在訪問mouseenter事件中的作用域時,它一直給出錯誤loadMoreTweets未找到。 – Raxit