1

녹아웃 검증을 사용하여 유효성 검사를 배열로 설정하는 방법은 무엇입니까?녹아웃 매핑 - 배열 유효성 검사

내 개체 정의

//c# code 
public class Trophy 
{ 
    public string Name { get; set; } 
    public string Category { get; set; } 
    public double PrizeMoney { get; set; } 
} 

public class Player 
{ 
    public string Name { get; set; } 
    public List<Trophy> Trophies { get; set; } 
} 

내가 '이름'같은 간단한 종류의 코 검증을 사용하여 '필요'와 같은 검증을 설정할 수 있어요하지만 내가 배열입니다 트로피로 설정할 수 없습니다. 나는 다음과 같이 사용하는 간단한 유형의

// javascript code 
var localModel = ko.mapping.fromJSON(getPlayerModelJson()); 

// Validation 
localModel.Name.extend({ required: { message: 'Please enter first name' } }); 

나를 트로피에 함께 이름, 종류와 PrizeMoney을 위해 수행하는 방법을 알려주세요?

나는
http://knockoutjs.com/documentation/plugins-mapping.html에서 언급 한 바와 같이 ' "생성"을 사용하여 객체 생성 사용자 정의'의 사용을 만들려고하지만 난 트로피 결과 객체에 두 개의 목록 항목이있는 경우는 예를 들어, 중복 트로피 배열 항목을 만들고있다 또한 두 항목이 있지만 마지막 항목과 중복되었습니다.

// Java script code 
var Trophies = function (data) { 

    Name = ko.observable(data.Name).extend({ required: { message: 'Please enter name' } }), 
    Category = ko.observable(data.Category), 
    PrizeMoney = ko.observable(data.PrizeMoney) 
} 

var localModel = ko.mapping.fromJSON(getPlayerModelJson(), TrophiesMapping); 

//Custom mapping 
var TrophiesMapping = { 
    'Trophies': { 
     create: function (options) { 
     return new Trophies(options.data); 
     } 
    } 
} 

원하는 것은 배열의 속성을 확인하는 것입니다. 감사합니다.

답변

0

여기는 JSFiddle using mapping입니다. 나는 당신의 문제는 다음 줄 수 있다고 생각 : 나는 당신의 코드를 복사하여 내가 한 번 봐

ko.mapping.fromJS(...) 
+0

감사합니다. Corey Cole. 문제는 ko.mapping.fromJSON이 아니라 트로피 개체와 함께, 코드의 차이점은 self (this) (self.Name, self.Trophy 및 self.PrizeMoney)를 사용하여 참조하는 것이 었습니다. 그래서 그 문제가 해결되었습니다. – Swamy

-1

로 변경 될 때까지 작동하지 않은 이유에 내 머리를 긁적했다

var localModel = ko.mapping.fromJSON(getPlayerModelJson(), TrophiesMapping); 

이 예제 upida.azurewebsites.net

주문 추가 - 클릭하고 새 창에서 제품 배열을 볼 수 있습니다. 여러 제품을 추가하고 데이터로 채우십시오. 저장을 시도하고 검증이 어떻게 작동하는지 보려면 knockout.js를 참조하십시오.

클라이언트 쪽 제약없이 서버 쪽 유효성 검사입니다.

+0

흠 ... 내 대답처럼 보이지 않습니다. – kleopatra

관련 문제