2013-09-21 5 views
0

Я пытаюсь отобразить текст ссылки на событие click для каждой ссылки, потому что я написал одну директиву «showtext», внутри которой я получаю текст ссылки, howerver, я не могу пройти что значение функции $ через сферу. $ применяются ("setMessage ($ element.text)"). Я также пытаюсь $ scope.message = $ element.text внутри директивы, но до сих пор его не working.plz помочьОбмен данными из директивы контроллеру

<div ng-controller="menu"> 
<a href="#" showtext>Click</a> 
<a href="#" showtext>Click1</a> 
<a href="#" showtext>Click2</a> 
<button showtext>OK</button> 
<p ng-model="message">You say {{message}}</p> 
</div> 


var app = angular.module('Demo',[]); 

    app.factory('shared',function(){ 

    }); 

app.controller('menu',function($scope){ 
    $scope.message = "" ; 
    $scope.setMessage = function(msg){ 
    $scope.message = msg; 
} 
}); 

app.directive('showtext',function(){ 
return { 
    link: function($scope,$element){ 
     $element.bind('click',function(){ 
      console.log($element.text()); 
      $scope.$apply("setMessage($element.text)"); 
     }); 
    } 
} 
}); 
+0

Создайте скрипку для показа поведения – Chandermani

ответ

3

Если заменить

$scope.$apply("setMessage($element.text)"); 

с

$scope.$apply(function() { 
    $scope.setMessage($element.text()) 
}); 

everything works fine.

+0

Эй, работая как шарм .. большое спасибо – user2534381

Смежные вопросы