programing

표시되는 값을 변경하려면 ng-options에 필터를 사용합니다.

closeapi 2023. 3. 22. 21:15
반응형

표시되는 값을 변경하려면 ng-options에 필터를 사용합니다.

가격표가 여러 개 있습니다.0,0.99,1.99...등)에 표시하고 싶다.<select>.

Angular's를 쓰고 싶다.ng-options이것처럼.

<select ng-model="create_price" ng-options="obj for obj in prices"/>

위에 표시되었을 때 다음 선택사항이 생성됩니다.0,0.99,1.99...

단, 코드에 필터를 사용하여 '가격'이라는 단어가 표시될 때마다 코드가 float number를 문자열로 변경하여 표시하는 함수를 실행하려고 합니다.free,0.99$,1.99$...등)

제가 그렇게 할 방법이 있나요?

감사해요.

더 좋은 방법이 있습니다.

app.filter('price', function() {
  return function(num) {
    return num === 0 ? 'free' : num + '$';
  };
});

그런 다음 다음과 같이 사용합니다.

<select ng-model="create_price" ng-options="obj as (obj | price) for obj in prices">
</select>

이렇게 하면 필터는 배열에서만 작동하는 것이 아니라 단일 값에 유용합니다.오브젝트 및 대응하는 포맷필터가 있는 경우, 이것은 매우 편리합니다.

필터는, 필요에 따라서 코드로 직접 사용할 수도 있습니다.

var formattedPrice = $filter('price')(num);

다음과 같은 사용자 정의 필터를 생성하려고 합니다.

app.filter('price', function() {
  return function(arr) {
    return arr.map(function(num){
      return num === 0 ? 'free' : num + '$';
    });
  };
});

다음과 같이 사용:

<select ng-model="create_price" ng-options="obj for obj in prices | price">
  {{ obj }}
</select>

유사 코드를 용서하십시오.

data-ng-options="( obj.property | myFilter ) for obj in objects"

app.filter('myFilter', function() {
  return function(displayValue) {
    return (should update displayValue) ? 'newDisplayValue' : displayValue;
});

언급URL : https://stackoverflow.com/questions/16644402/use-filter-on-ng-options-to-change-the-value-displayed

반응형