2016-09-28 9 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); 
    } 

SOLUTION:

指令テンプレート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

あなたの質問は何ですか? – 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を変更します。

あなたのコントローラで
<!-- with the prefixed 'on-' --> 
<aside-filter on-change-visualization="onChangeVisualization(option)" /> 

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

でデータを渡すことはないので、いくつかの進歩はありますが、ng-clickでargsによって渡されたデータをどのように取得できますか? in指令テンプレートのURL –

+0

おかげで男! ng-clickで呼び出すときにパラメータでオブジェクトを渡すことができませんでした! –

関連する問題