2014-04-25 57 views
0

我一直在使用角度,事情是,我把这个ng模型是一个文本输入,并在同一时间,我用这个自动完成指令,问题是我想要改变输入的值,只要从自动完成中选择一些,而不是只在需要描述的时候才输入数字,问题是当我把所有数字改变为这样,我想,可能有人帮助我,这是代码 $ scope.trailer = {

options: { 
    minLength:2, 
    html: true, 
    source:"controllers/search.php?catalogo=trailers", 

    select: function(event, ui){ 
     console.log(ui);  
     //$(this).val(ui.item.desc+' '+ui.item.clave).change(); 
     $scope.formData.trailerid = ui.item.id; 
     $scope.formData.trailerclave = ui.item.clave; 
     $scope.formData.trailerdueno = ui.item.propietario; 
     $scope.formData.trailer = ui.item.desc;//+' '+ui.item.clave; 

     return false; 
    }, 
    change: function (event, ui) { 
     if (ui.item == null) { 
      $scope.formData.trailerid = 0 ; 
      $scope.formData.trailerdueno = ''; 
      $scope.formData.trailerclave = ''; 
      $scope.formData.trailer = ''; 
     } 
    } 
}, 
methods: {} 

} 

和HTML

<input type="text" class="form-control trailer" ng-model="formData.trailer" ui-autocomplete = "trailer" /> 
             <span class="help-block">{{formData.trailer}}</span> 

回答

0

有时我发现如果我使用的是一个函数或事件,它是外部插件的一部分,而不是与Angular相关,我需要在$ scope中包装它们中的任何内容。$ apply(function(){});

options: { 
minLength:2, 
html: true, 
source:"controllers/search.php?catalogo=trailers", 

select: function(event, ui){ 
$scope.$apply(function(){ 
    console.log(ui);  
    //$(this).val(ui.item.desc+' '+ui.item.clave).change(); 
    $scope.formData.trailerid = ui.item.id; 
    $scope.formData.trailerclave = ui.item.clave; 
    $scope.formData.trailerdueno = ui.item.propietario; 
    $scope.formData.trailer = ui.item.desc;//+' '+ui.item.clave; 
}); 
    return false; 
}, 
change: function (event, ui) { 
    if (ui.item == null) { 
    $scope.$apply(function(){ 
     $scope.formData.trailerid = 0 ; 
     $scope.formData.trailerdueno = ''; 
     $scope.formData.trailerclave = ''; 
     $scope.formData.trailer = ''; 
    }); 
    } 
} 
}, 
methods: {} 

} 
+0

什么也没发生:(,你觉得我必须把UI-autoomplete指令里面?或者有用于初始化控制器范围的方式?THX你样的反应 – user3384672

+0

谢谢,显然问题出在修改函数中,我只是把这个'$ scope.formData.trailer = ui.item.desc;'加到它的开头,非常感谢你的回答 – user3384672