Angular将多个变量传递给指令

时间:2014-10-21 22:56:28

标签: javascript angularjs

我有这个指令:

App.directive('typeahead', function($timeout) {
  return {
    restrict: 'AEC',
    scope: {
        items: '=',
        prompt:'@',
        title: '@',
        subtitle:'@',
        model: '=',
        selindex: '=',
        onSelect:'&'
    },
    link:function(scope,elem,attrs){
        scope.handleSelection=function(selectedItem){
           scope.model=selectedItem;
           scope.current=0;
           scope.selected=true;        
           $timeout(function(){
               scope.onSelect();
           },200);
        };
        scope.current=0;
        scope.selected=true;
        scope.isCurrent=function(index){
           return scope.current==index;
        };
        scope.setCurrent=function(index){
           scope.current=index;
        };
    },
    templateUrl: 'templates/templateurl.html'
  }
});

我有这个HTML:

<typeahead items="items" prompt="Start typing a US state" title="name" subtitle="id" model="name" on-select="onItemSelected()"/>

Directice正在使用此模板:

<input type="text" ng-model="model" placeholder="{{prompt}}" ng-keydown="selected=false"/><br/> 

<div class="items" ng-hide="!model.length || selected">
<div class="item" ng-repeat="item in items | filter:model  track by $index" ng-click="handleSelection(item[subtitle])" style="cursor:pointer" ng-class="{active:isCurrent($index)}" ng-mouseenter="setCurrent($index)">
    <p class="title">{{item[title]}}</p>
    <p class="subtitle">{{item[subtitle]}}</p>
</div>

这将调用指令中的函数:

scope.handleSelection=function(selectedSubtitle){

我尝试实现的目标是:

handleSelection(item[title], item[subtitle])

然后在指令中选择它:

scope.handleSelection=function(selectedTitle, selectedSubtitle){

但是,指令中的selectedSubtitle仍为空。如何将附加参数传递给指令?

0 个答案:

没有答案