2016-09-28 3 views
1

지침 템플릿 URL :지침 기능 매개 변수가 정의되지

<div class="filter-input" ng-click="changeVisualization('trocaparaeste')"> 

지침 :

app.directive('asideFilter', function() { 
return { 
    restrict: 'E', 
    scope: { 
    categories: "=", 
    change: "&onChange", 
    changeVisualization: '&onChangeVisualization' 

    }, 
    templateUrl: 'assets/directives/asideFilter/asideFilter.html', 
    controller: function($scope){ 
    } 
}; 
});; 

지침 사용 : 파라미터 데이터를 얻으려고 노력 메신저

<aside-filter change-visualization="onChangeVisualization()"/> 

컨트롤러 :

$scope.onChangeVisualization = function(option) { 
    console.log('option', option); 
    } 

해결책 :

지침 템플릿 URL :

<aside-filter on-change-visualization="onChangeVisualization(option)"/> 

지침 :

app.directive('asideFilter', function() { 
    return { 
    restrict: 'E', 
    scope: { 
     categories: "=", 
     change: "&onChange", 
     changeVisualization: '&onChangeVisualization' 

    }, 
    templateUrl: 'assets/directives/asideFilter/asideFilter.html', 
    link: function(scope){ 
     // pass 'option' variable so it can be used in the callback 
     scope.changeVisualization({ option: "worked!" }); 
    } 
    }; 
});; 

지침 사용 : 당신은 당신의 이름은 전환이

<aside-filter change-visualization="onChangeVisualization(option)"/> 
+0

질문은 무엇입니까 : 컨트롤러에서

<!-- with the prefixed 'on-' --> <aside-filter on-change-visualization="onChangeVisualization(option)" /> 

를? – devqon

+0

죄송합니다. 내 질문은, 왜 내 부모 컨트롤러, 어디 메신저 데이터를 콘솔에, 그것의 정의되지 않은거야? –

+0

'change-visualization = "onChangeVisualization()"' – devqon

답변

2

:

scope: { 
    // prefixed with 'on' 
    // so usage: <my-directive on-change-visualization="someFunc(option)"/> 
    changeVisualization: '&onChangeVisualization' 
}, 
// example: 
link: function($scope) { 
    scope.changeVisualization = scope.changeVisualization || angular.noop; 

    // pass 'option' variable so it can be used in the callback 
    scope.changeVisualization({ option: "worked!" }); 
} 

그리고 당신의 HTML 변경 :

$scope.onChangeVisualization = function(option) { 
    console.log('option', option); // logs: 'option worked!' 
} 
+0

에서 데이터를 전달하지 않으므로 일부 진행이되지만 ng-click에서 args가 전달한 데이터를 어떻게 얻을 수 있습니까? 지시문 템플릿 URL –

+0

감사합니다! ng-click으로 호출 할 때 매개 변수로 객체를 전달하지 못했습니다! –

관련 문제