2016-08-19 4 views
1

<select>에는 ng-model이 있고 옵션 중 하나는 공백입니다. 초기 값이 다른 경우 angle은 올바른 옵션을 선택하지만 초기 값이 공백 인 경우 angle은 빈 옵션을 추가합니다.각도 옵션 공백으로 선택하십시오.

<select ng-model="a" ng-trim="false"> 
    <option value=" ">Default</option> 
</select> 

<select ng-model="b"> 
    <option value="x">Default</option> 
</select> 

및 컨트롤러와 같은 :

내가 좋아하는 HTML을 재현 할 수

$scope.a = " "; 
$scope.b = "x"; 

첫 번째 선택 빈 옵션이 제공되며, 두 번째는 "기본"을 표시합니다. ng-trim을 추가하는 것이 도움이되지 않는 것 같아서 데이터베이스에서 값을 가져오고 있으므로 쉽게 변경할 수 없습니다.

각도 1.4.8, 1.4.9 (사용하고있는) 및 1.5.8 (모두 https://code.angularjs.org/)으로 문제를 재현 할 수 있습니다.

나는 여기 피들을 가지고있다 : https://jsfiddle.net/d1cj3kzb/4/.

ng-model이 공백으로 초기화 될 때 <select>이 올바른 옵션을 표시하려면 어떻게해야합니까?

답변

1

처럼,이 경우 공간에서 기본의 값을 갖는 코드에서 변수를 선언보십시오 :

$ scope.spaceChar = ""; 당신의 선택에

다음 :

<select ng-model="a" ng-trim="false"> 
    <option value="{{spaceChar}}">Default</option> 
</select> 
+0

행운은 없지만 여전히 공백 옵션으로 이동합니다. –

+0

정말입니까? 나는 당신의 바이올린을 사용했고 그것은 나를 위해 작동하는 것 같습니다 : https://jsfiddle.net/d1cj3kzb/5/ – angelika

+0

네 말이 맞아,이 작품! 그것을 시도 할 때 오타를 만들었습니다. –

0

이 시도 할 수 있습니까?

<div ng-app="app" ng-controller="MyCtrl"> 
    <select ng-model="a" > 
     <option value=" " ng-trim="true">Default</option> 
    </select> 

    <select ng-model="b"> 
     <option value="x">Default</option> 
    </select> 

바인딩하기 전에 변수를 트림 :

은 옵션으로 NG 트림을 적용합니다.

angular.module("app", []) 
    .controller("MyCtrl", 
    function ($scope) { 
     $scope.a = (" ").trim(); 
     $scope.b = "x"; 
    } 
); 
+0

불행히도'a'의 값을 변경합니다.'a'는 서버로'' "''로 되돌려 보내려고합니다. 나는 그 길을 찾을 수 없으면 이것을 할 수 있습니다. –

+0

'("") .trim();'은''''이 될 것이므로 어떻게 그것의 공간을 분석 할 수 있습니까? –

+0

@Andrew : 데이터베이스에서 데이터를 가져온 다음 옵션에 바인딩하기 전에 데이터가 중복되지 않도록 데이터를 처리해야합니다. 예 : Ruhul

관련 문제