2017-02-28 35 views
0

要复制问题in this plunk,请在字段中输入任何内容,选择任意行,然后单击“更改名称”按钮。您会看到该模型已更改,但角度输入字段未反映该模型。有什么想法吗?未在角度UI输入模式中刷新模型

HTML

<input type="text" ng-model="ds" 
    uib-typeahead="ds as ds.name for ds in queryList($viewValue)" > 

    <p>Model: {{ds}}</p> 

    <button ng-click="changeName()">Change Name</button> 

的Javascript

var app = angular.module('app', ['ui.bootstrap']); 
app.controller('ctl', function ($scope,$uibModal) { 

    $scope.queryList = function(query) { 
     return [ {id: 1, name: "aaa"}, 
       {id: 2, name: "bbb"}, 
       {id: 3, name: "ccc"}] 
    }; 

    $scope.changeName = function(){ 
     $scope.ds.name = "New name"; 
    }; 

}); 
+1

使用'NG-模型=“ds.name”'代替ID和名称 – devqon

+0

,因为我需要的型号有:

PLUNK

ps0604

回答

0

这是解决方案 - 重新创建整个对象:

$scope.changeName = function(){ 
    $scope.ds = { 
    id: $scope.ds.id, 
    name: "New name" 
    }; 
}; 
01我不能http://plnkr.co/edit/zaRdpKjfc6YhErVmkayi?p=preview
0

试着用这一个:

<input type="text" ng-model="ds.name" 
    uib-typeahead="ds as ds.name for ds in queryList($viewValue)" > 
+0

我不能,因为我需要该模型具有ID和名称 – ps0604