pureComputed 요소에서 중복을 허용하지 않습니다.

경기

이 요소 포함 (계산 된 필드 참고) fullNumber

var NumberField = function () {
  var self = this;
  self.maskFormat = "0";
  self.firstNumber = ko.observable("");
  self.secondNumber = ko.observable("");
  self.thirdNumber = ko.observable("");
  self.fourthNumber = ko.observable("");
  self.fifthNumber = ko.observable("");

  self.fullNumber = ko.pureComputed(function() {
    return [
      self.firstNumber,
      self.secondNumber,
      self.thirdNumber,
      self.fourthNumber,
      self.fifthNumber ].map(ko.unwrap);
  }
}

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

<div class="numberFields" data-bind="with: numbers">

  <input id="0" class="number-ball" maxlength="2" type="tel" data-bind="twoDigits: firstNumber, maxNumber: 68">
  <input id="1" class="number-ball" maxlength="2" type="tel" data-bind="twoDigits: secondNumber, maxNumber: 68">
  <input id="2" class="number-ball" maxlength="2" type="tel" data-bind="twoDigits: thirdNumber, maxNumber: 68">
  <input id="3" class="number-ball" maxlength="2" type="tel" data-bind="twoDigits: fourthNumber, maxNumber: 68">
  <input id="4" class="number-ball" maxlength="2" type="tel" data-bind="twoDigits: fifthNumber, maxNumber: 68">

</div>

중복 된 값이 없는지 어떻게 확인할 수 fullNumber있습니까?

사용자 3297291

계산에서 map숫자에 대한 모든 종류의 함수를 연결할 수 있습니다 . 기본적으로 다음 세 가지를 수행합니다.

  1. 를 호출 observable하여 에서 이동 ,Numberko.unwrap
  2. 래핑되지 않은 값이 이미 존재하는지 확인하십시오. 예 : 고유 항목 필터링
  3. 빈 입력으로 인해 발생할 수있는 배열에 추악한 null이나 undefined이 없는지 확인하십시오.

일반 자바 스크립트에서 일부 "최신"기능 ( Array.from, Set) :

var uniques = function(arr) {
   // There are many implementations of a unique method.
   // google/search for `unique js values` to learn more
   return Array.from(new Set(arr));
};

var arrUnwrap = function(arr) {
  return arr.map(ko.unwrap);
};

var truethyValues = function(arr) {
  return arr.filter(function(val) {
    return val;
  });
};

var NumberField = function () {
  var self = this;
  self.maskFormat = "0";
  self.firstNumber = ko.observable("");
  self.secondNumber = ko.observable("");
  self.thirdNumber = ko.observable("");
  self.fourthNumber = ko.observable("");
  self.fifthNumber = ko.observable("");
  
  var numbers = [
      self.firstNumber,
      self.secondNumber,
      self.thirdNumber,
      self.fourthNumber,
      self.fifthNumber ];
  
  
  // Read from right to left: 
  //  fullNumber is: unwrapped, unique, truethy numbers
  self.fullNumber = ko.pureComputed(function() {
    return truethyValues(uniques(arrUnwrap(numbers)));
  });
}
                                    
ko.applyBindings(new NumberField());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

<div>
  <input data-bind="textInput: firstNumber">
  <input data-bind="textInput: secondNumber">
  <input data-bind="textInput: thirdNumber">
  <input data-bind="textInput: fourthNumber">
  <input data-bind="textInput: fifthNumber">
</div>

<h1 data-bind="text: fullNumber"></h1>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

CKEditor는 위젯에 중첩 된 <a> 요소를 허용하지 않습니다.

분류에서Dev

`ip route add`는 중복 항목을 허용하지 않습니다. 이에 의존 할 수 있습니까?

분류에서Dev

IEnumerable <KeyValuePair <Guid, string >>에서 중복을 허용하지 않음

분류에서Dev

Laravel 5.1은 현재 사용자에게 중복 된 gecko 이름을 허용하지 않습니다.

분류에서Dev

터미널에서 입력을 허용하지 않습니다.

분류에서Dev

양식에서 DateTime 형식을 허용하지 않습니다.

분류에서Dev

pureComputed에서 약속을 반환하는 KnockoutJS

분류에서Dev

R plm 패키지에서 "중복 된 'row.names'는 허용되지 않음"을 해결하기 위해 필사적으로 : 중복이 없습니다.

분류에서Dev

Firebase 메소드는 반품을 허용하지 않습니다

분류에서Dev

radvd는 비 / 64 서브넷을 허용하지 않습니다.

분류에서Dev

GHC는 GADT 유형 서명을 허용하지 않습니다.

분류에서Dev

Regex는 끝에 빈 공간을 허용하지 않습니다.

분류에서Dev

Crontab은 시간에 2/6을 허용하지 않습니다.

분류에서Dev

인라인 요소는 margin-top을 허용하지 않습니다.

분류에서Dev

Quartus는 Verilog에서 생성 블록 사용을 허용하지 않습니다.

분류에서Dev

응용 프로그램 구성에서 URL을 허용하지 않습니다.

분류에서Dev

TypeScript : 문자열 공용체 리터럴 배열 유형에서 배열에있는 중복 값을 허용하지 않습니다.

분류에서Dev

Mongo는 중복 사용자 이름 삽입을 허용하지 않습니다.

분류에서Dev

Visual Studio 커뮤니티에서 로그인을 허용하지 않습니다.

분류에서Dev

Angular JS 오류 : [ngRepeat : dupes] repeater에서 중복은 허용되지 않습니다.

분류에서Dev

오류 : [ngRepeat : dupes] repeater에서 중복은 허용되지 않습니다.

분류에서Dev

중복을 허용하지 않고 연결된 목록에 항목 추가

분류에서Dev

Nginx는 도메인을 통해 허용하지만 IP를 통해서는 허용하지 않습니다.

분류에서Dev

반응 내에서 라우팅하면 "중복 소품이 허용되지 않음"이 발생합니다.

분류에서Dev

Firefox는 HTTP 페이지에서 HTTPS 리소스 호출을 허용하지 않습니다.

분류에서Dev

javascript가 PHP에서 부울 또는 null을 허용하지 않습니다.

분류에서Dev

Vim printoptions는 두 가지 옵션을 동시에 허용하지 않습니다.

분류에서Dev

저장소 Blob 복사 작업 중 오류-요청 된 작업은 엔터티의 현재 상태에서 허용되지 않습니다.

분류에서Dev

Paypal 버튼 관리자는 소수 금액을 허용하지 않습니다.

Related 관련 기사

  1. 1

    CKEditor는 위젯에 중첩 된 <a> 요소를 허용하지 않습니다.

  2. 2

    `ip route add`는 중복 항목을 허용하지 않습니다. 이에 의존 할 수 있습니까?

  3. 3

    IEnumerable <KeyValuePair <Guid, string >>에서 중복을 허용하지 않음

  4. 4

    Laravel 5.1은 현재 사용자에게 중복 된 gecko 이름을 허용하지 않습니다.

  5. 5

    터미널에서 입력을 허용하지 않습니다.

  6. 6

    양식에서 DateTime 형식을 허용하지 않습니다.

  7. 7

    pureComputed에서 약속을 반환하는 KnockoutJS

  8. 8

    R plm 패키지에서 "중복 된 'row.names'는 허용되지 않음"을 해결하기 위해 필사적으로 : 중복이 없습니다.

  9. 9

    Firebase 메소드는 반품을 허용하지 않습니다

  10. 10

    radvd는 비 / 64 서브넷을 허용하지 않습니다.

  11. 11

    GHC는 GADT 유형 서명을 허용하지 않습니다.

  12. 12

    Regex는 끝에 빈 공간을 허용하지 않습니다.

  13. 13

    Crontab은 시간에 2/6을 허용하지 않습니다.

  14. 14

    인라인 요소는 margin-top을 허용하지 않습니다.

  15. 15

    Quartus는 Verilog에서 생성 블록 사용을 허용하지 않습니다.

  16. 16

    응용 프로그램 구성에서 URL을 허용하지 않습니다.

  17. 17

    TypeScript : 문자열 공용체 리터럴 배열 유형에서 배열에있는 중복 값을 허용하지 않습니다.

  18. 18

    Mongo는 중복 사용자 이름 삽입을 허용하지 않습니다.

  19. 19

    Visual Studio 커뮤니티에서 로그인을 허용하지 않습니다.

  20. 20

    Angular JS 오류 : [ngRepeat : dupes] repeater에서 중복은 허용되지 않습니다.

  21. 21

    오류 : [ngRepeat : dupes] repeater에서 중복은 허용되지 않습니다.

  22. 22

    중복을 허용하지 않고 연결된 목록에 항목 추가

  23. 23

    Nginx는 도메인을 통해 허용하지만 IP를 통해서는 허용하지 않습니다.

  24. 24

    반응 내에서 라우팅하면 "중복 소품이 허용되지 않음"이 발생합니다.

  25. 25

    Firefox는 HTTP 페이지에서 HTTPS 리소스 호출을 허용하지 않습니다.

  26. 26

    javascript가 PHP에서 부울 또는 null을 허용하지 않습니다.

  27. 27

    Vim printoptions는 두 가지 옵션을 동시에 허용하지 않습니다.

  28. 28

    저장소 Blob 복사 작업 중 오류-요청 된 작업은 엔터티의 현재 상태에서 허용되지 않습니다.

  29. 29

    Paypal 버튼 관리자는 소수 금액을 허용하지 않습니다.

뜨겁다태그

보관