2017-10-11 44 views
0

嗨只顯示一個值我有一個指令,如下所示:角JS指令發送對象的響應,並從該

module.directive("typeahead", function() { 
    return { 
     restrict: "A", 
     require: 'ngModel', 
     link: function(scope, element, attrs,controller) { 
      console.log(element); 
      var model = attrs.ngModel; 
      var config = { 
       key: 'mykey' , 
       faces:{ 
        onclick: function(person) { 
         controller.$setViewValue(person); 
         controller.$render(); 
         scope.$apply(); 
        } 
       } 
      }; 
      TypeAhead.init(element,config); 
     } 
    }; 
}); 

當用戶開始輸入的東西我打電話這個指令在我的輸入字段。該人物將看起來像這樣:

{ 
    name:'my name', 
    email:'myemail', 
    sno:'myserialno' 
} 

我想整個人對象發送,但在輸入只想顯示名稱。我的後端API調用需要「序列號」和「電子郵件」,但不需要顯示。我如何才能做到這一點,因爲上面的代碼顯示[object object]

這是我的HTML代碼

+0

這將是非常有益的,如果你能後置HTML代碼還,但我認爲'控制器$ setViewValue(person);'應該是'controller。$ setViewValue(person.name);' – jitender

+0

控制器。$ setViewValue(person.name)會給出名字,但是我會放棄序列號和電子郵件。我的最終目標是爲了顯示目的,我需要名稱,而對於我的後端,api調用將傳遞電子郵件 –

回答

0

你可以改變你的點擊功能做到以下幾點:

onclick: function(person) { 
    // set only the name as the value 
    controller.$setViewValue(person.name); 

    // do your API calls or prepare for them here 
    // scope.person = person; 
    // OR 
    // myAPICall(person); 

    controller.$render(); 
    scope.$apply(); 
}