2014-05-14 4 views
0

전체 렌더링시 이벤트를 발생시키려는 선택 목록이 있습니다. JsFiddle 코드 검토 링크가 있습니다. 미리 감사드립니다 ... JsFiddle Example각도 Js 목록 선택 완료시 화재 이벤트

<div ng-controller="MyCtrl"> 
    <select ng-options="size as size.name for size in sizes " ng-model="item" ng-change="update()"></select> 
    {{item.code}} {{item.name}} 
</div> 

JS :

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


function MyCtrl($scope) { 
    $scope.sizes = [ {code: 1, name: 'n1'}, {code: 2, name: 'n2'}]; 
    $scope.update = function() { 
     console.log('77: ' + $scope.item.code, $scope.item.name) 
    } 
} 

답변

1

당신은 ng-repeat를 사용하여 <option> 요소를 생성하고 지침을 사용하여 렌더링 마지막 항목에 콜백을 발사 수 :

myApp.directive('onLastRepeat', function($timeout) { 
    return function (scope, elm, attrs) { 
     if (scope.$last) { 
      $timeout(function() { 
       scope.$eval(attrs.onLastRepeat); 
      }); 
     } 
    }; 
}); 

을 HTML :

<select> 
    <option ng-repeat="size in sizes" value="{{size.code}}" on-last-repeat="yourCallback()">{{size.name}}</option> 
</select> 

는 바이올린있다 : http://jsfiddle.net/aartek/G8S32/406/

편집 : 선택한 옵션이 변경이라고의 onChange() 이벤트와

솔루션 : http://jsfiddle.net/G8S32/408/

+0

가 지금 좋아 추가 이벤트를 호출 할 수있는 기능이 선택 옵션을 변경하면 승자가 생깁니다! 결과를보고 싶습니다. 지금까지 고마워. –

+0

@RobertGreen이 (가) 추가되었습니다. 그것은 당신의 코드에서와 똑같이 작동합니다. – akn